728x90
https://www.acmicpc.net/problem/21918
21918번: 전구
$N$개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다. $1$은 전구가 켜져 있는 상태를 의미하고, $0$은 전구가 꺼져 있는 상태를
www.acmicpc.net
1번 명령어 [i, x]: i번째 전구 상태를 x로 변경
2번 명령어 [l,r]: l번째부터 r번째까지의 전구 상태 변경
3번 명령어 [l,r]: l번째부터 r번째까지의 전구를 끈다
4번 명령어 [l,r]: l번째부터 r번째까지의 전구를 켠다
#include <iostream>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, m;
bool bulb[4000];
cin >> n >> m;
for(int i=1; i<=n; i++) cin >> bulb[i];
//command
for(int i=0; i<m; i++){
int comm, a, b;
cin >> comm >> a >> b;
if(comm == 1) bulb[a] = b;
else if(comm == 2){
for(int i=a; i<=b; i++) bulb[i] = !bulb[i];
}else if(comm == 3){
for(int i=a; i<=b; i++) bulb[i] = 0;
}else if(comm == 4){
for(int i=a; i<=b; i++) bulb[i] = 1;
}
}
for(int i=1; i<=n; i++) cout << bulb[i] << ' ';
cout << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 2578번: 빙고 (0) | 2022.07.06 |
---|---|
[백준/c++] 14467번: 소가 길을 건너간 이유 1 (0) | 2022.07.06 |
[백준/c++] 5597번: 과제 안 내신 분..? (0) | 2022.05.30 |
[백준/c++] 20053번: 최소, 최대 2 (0) | 2022.05.30 |
[백준/c++] 1212번: 8진수 2진수 (0) | 2022.05.27 |