-
[백준 1244] 스위치 켜고 끄기백준/비트마스크 2023. 11. 11. 09:40
전형적인 bitset 써서 풀라는 문제
#include <iostream> #include <bitset> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; cin >> N; bitset<101> switches; for (int i = 1; i <= N; i++) { bool state; cin >> state; switches[i] = state; } int M; cin >> M; for (int i = 0; i < M; i++) { int sex, idx; cin >> sex >> idx; if (sex == 1) { for (int k = idx; k <= N; k += idx) { switches.flip(k); } } else { int left = idx - 1; int right = idx + 1; while (left >= 1 && right <= N && switches[left] == switches[right]) { left--; right++; } for (int idx = left + 1; idx <= right - 1; idx++) { switches.flip(idx); } } } for (int i = 1; i <= N; i++) { cout << switches[i] << " "; if (i % 20 == 0) cout << "\n"; } return 0; }
'백준 > 비트마스크' 카테고리의 다른 글
[백준 1062] 가르침 (5) 2025.08.01 [백준 20501] Facebook (0) 2023.07.07 [백준 27375] 금공강 사수 (1) 2023.07.04 [백준 11723] 집합 (0) 2023.07.03 [백준 20364] 부동산 다툼 (0) 2023.06.30