백준 1244번: 스위치 켜고 끄기

danbibibi·2022년 11월 10일
0

문제

문제 바로가기> 백준 1244번: 스위치 켜고 끄기

풀이

간단한 구현이다. 출력형식에 주의하자!

#include <iostream>
#define MAX 101
using namespace std;

bool S[MAX];

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);

    // 1. input
    int snum; cin >> snum;
    for(int i=1; i<=snum; i++) cin >> S[i];
    
    // 2. solution
    int student, sex, num; cin >> student;
    while(student--){
        cin >> sex >> num;
        if(sex==1){ // man
            int cnt = 1;
            while(num*cnt <= snum){
                S[num*cnt] = !S[num*cnt];
                cnt++;
            }
        }
        else{ // woman
            int cnt = 0;
            while(1){
                if(num-cnt<1 || num+cnt>snum) break; // out of range
                if(S[num-cnt]!=S[num+cnt]) break;
                cnt++;
            }
            for(int i=num-cnt+1; i<num+cnt; i++) S[i] = !S[i];
        }
    }

    // 3. output
    for(int i=1; i<=snum; i++) {
        cout << S[i] << " ";
        if(i%20==0) cout << "\n";
    }
}
profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글