Skip to content

Commit 2dacce4

Browse files
committed
BOJ_1244 : 스위치 켜고 끄기
1 parent 1b6db99 commit 2dacce4

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class Main {
5+
6+
public static int N;
7+
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
N = Integer.parseInt(br.readLine());
11+
boolean[] arr = new boolean[N+1];
12+
StringTokenizer st = new StringTokenizer(br.readLine());
13+
for(int i=1; i<=N; i++) {
14+
arr[i] = (Integer.parseInt(st.nextToken()) == 1);
15+
}
16+
int m = Integer.parseInt(br.readLine());
17+
for(int i=0; i<m; i++) {
18+
st = new StringTokenizer(br.readLine());
19+
int student = Integer.parseInt(st.nextToken());
20+
int num = Integer.parseInt(st.nextToken());
21+
updateSwitch(arr, student, num);
22+
}
23+
StringBuffer sb = new StringBuffer();
24+
for(int i=1; i<=N; i++) {
25+
sb.append(arr[i] ? '1' : '0');
26+
if(i % 20 == 0) {
27+
sb.append('\n');
28+
}else {
29+
sb.append(' ');
30+
}
31+
}
32+
System.out.println(sb);
33+
}
34+
35+
public static void updateSwitch(boolean[] arr, int student, int num) {
36+
if(student == 1) {
37+
for(int i=1; i<=N; i++) {
38+
if(i % num == 0) {
39+
arr[i] = !arr[i];
40+
}
41+
}
42+
}else {
43+
for(int i=0; (num-i>=1) && (num+i <= N); i++) {
44+
if(arr[num-i] == arr[num+i]) {
45+
arr[num-i] = arr[num+i] = !arr[num+i];
46+
}else {
47+
return;
48+
}
49+
}
50+
}
51+
}
52+
}

0 commit comments

Comments
 (0)