https://www.acmicpc.net/problem/1244
#include <iostream>
using namespace std;
const int MAX = 105;
int sw[MAX];
int n;
int m;
int main(void) {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> sw[i];
}
cin >> m;
for (int i = 0; i < m; i++) {
int gen, num;
cin >> gen >> num;
if (gen == 1) { //남학생
int index = 1;
for (; index*num <= n; index++) {
if (sw[index*num] == 1) sw[index*num] = 0;
else sw[index*num] = 1;
}
}
else {//여학생
int left = num - 1;
int right = num + 1;
if (sw[num] == 0) sw[num] = 1;
else sw[num] = 0;
for (; left > 0 && right <= n; left--, right++) {
if (sw[left] == sw[right]) {
if (sw[left] == 0) sw[left] = 1;
else sw[left] = 0;
if (sw[right] == 0) sw[right] = 1;
else sw[right] = 0;
}
else break;
}
}
}
for (int i = 1; i <= n; i++) {
cout << sw[i];
if (i % 20 == 0) cout << endl;
else cout << " ";
}
}
'백준 알고리즘 > 구현' 카테고리의 다른 글
줄기세포 배양 C++ (0) | 2022.04.23 |
---|---|
로봇 시뮬레이션 C++ (0) | 2022.03.09 |
치즈 C++ (0) | 2022.03.07 |
마법사 상어와 토네이도 C++ (0) | 2022.02.15 |
마법사 상어와 비바라기 C++ (0) | 2022.02.05 |