이번 문제는 특별한 알고리즘을 사용하지 않고 구현하는 문제였다. 남학생일 경우는 쉽게 구현할 수 있었지만 여학생인 경우가 조금 어려웠다.
#include <iostream>
#define MAX 101
using namespace std;
int n;
bool swtch[MAX];
int num;
int s, k;
void Input(){
cin>>n;
for(int i=1; i<=n; i++){
cin>>swtch[i];
}
}
void Solution(){
if(s==1){
for(int j=1; j<=n; j++){
if(j%k==0){
swtch[j]=!swtch[j];
}
}
}
if(s==2){
int j=0;
while (k-j>=1&&k+j<=n&&swtch[k-j]==swtch[k+j]) {
swtch[k-j]=swtch[k+j] = !swtch[k-j];
j++;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Input();
cin>>num;
for(int m=0; m<num; m++){
cin>>s>>k;
Solution();
}
for(int i=1; i<=n; i++){
if(swtch[i])
cout<<1<<' ';
else if(!swtch[i])
cout<<0<<' ';
if(i%20==0)
cout<<endl;
}
cout<<endl;
return 0;
}
한 줄에 20개씩만 호출하는 조건을 빼먹어서 출력형식 오류가 발생했고 이를 설정하고 난 뒤에는 정답 처리 되었다.