https://www.acmicpc.net/problem/1244

 

1244번: 스위치 켜고 끄기

첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩

www.acmicpc.net

 

 

[난이도] Silver3
[유형] 시뮬레이션

[풀이]
문제의 주어진 조건대로 시뮬레이션 해주면 됩니다.

 

#include <cstdio>
int N,a[101],k;

void sol1(int n){
    for(int i=n;i<=N;i+=n){
        a[i]=1-a[i];
    }
}
void sol2(int n){
    int k=0;
    for(int i=1;i<=N/2;i++){
        if(n-i<1||n+i>N||a[n-i]!=a[n+i]) break;
        k=i;
    }
    for(int i=n-k;i<=n+k;i++){
        a[i]=1-a[i];
    }
}

int main(){
    scanf("%d",&N);
    for(int i=1;i<=N;i++) scanf("%d",&a[i]);
    scanf("%d",&k);
    while(k--){
        int p,m;
        scanf("%d%d",&p,&m);
        if(p==1){
            sol1(m);
        }else{
            sol2(m);
        }
    }
    for(int i=1;i<=N;i++){
        printf("%d ",a[i]);
        if(i%20==0) puts("");
    }
}

 

 


https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver3/1244.cpp

+ Recent posts