No Rules Rules

스위치 켜고 끄기 (feat. 백준, 1244번) 본문

생활/코테

스위치 켜고 끄기 (feat. 백준, 1244번)

개발하는 완두콩 2023. 2. 9. 15:02
728x90
반응형

스위치 켜고 끄기
https://www.acmicpc.net/problem/1244

 

1244번: 스위치 켜고 끄기

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

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
using namespace std;
int main() {
    ios::sync_with_stdio(false), cin.tie(NULL);
    register int arr[100], N, M, a, b, c, n, m, l, r;
    cin >> N;
    for(n = 0; n < N; ++n)
        cin >> arr[n];
    cin >> M;
    for(m = 0; m < M; ++m){
        cin >> a >> b;
        if(a == 1){
            for(n = 1; ;++n){
                c = b * n;
                if(c > N)
                    break;
                arr[c - 1] = (arr[c - 1] == 0) ? 1 : 0;
            }
        }
        else{
            l = r = b - 1;
            while(1){
                if(l < 0 || r >= N || arr[l] != arr[r]){
                    ++l, --r;
                    break;
                }
                --l, ++r;
            }
            for(n = l; n <= r; ++n)
                arr[n] = (arr[n] == 0) ? 1 : 0;
        }
    }
    for(n = 0; n < N; ++n){
        cout << arr[n];
        if(n % 10 == 9)
            cout << "\n";
        else
            cout << " ";
    }
	return 0;
}
// *&)*@*

 

반응형

문제의 요구사항에 따라 풀이하면 됩니다.

20개의 스위치가 한줄에 출력되어야 하고, 한줄의 마지막에는 띄워쓰기가 없어야 합니다.

728x90
반응형
Comments