XOR연산
import sys
input = sys.stdin.readline
N = int(input())
switches = list(map(int, input().split()))
M = int(input())
for _ in range(M):
a, b = map(int, input().split())
# 남학생이면 스위치 번호가 받은 수의 배수이면 그 스위치의 상태를 바꾼다. XOR(3을 받으면 3,6끔)
# 여학생은 자기가 받은 스위치 번호를 중심으로 좌우가 대칭이면서 가장 많은 스위치를 포함하는 구간을 찾아 상태를 모두 바꾼다. XOR
if a==1:
for i in range(N):
if not (i+1)%b:
switches[i] ^= 1
else:
size=1
while b-1-size>=0 and b-1+size<N and switches[b-1-size]==switches[b-1+size]:
size += 1
for i in range((b-1)-(size-1),(b-1)+(size-1)+1):
switches[i] ^= 1
for i in range(0,N,20):
print(*switches[i:i+20])
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 7662 이중 우선순위 큐 (0) | 2021.08.27 |
---|---|
[백준][Python] 7576 토마토 (0) | 2021.08.27 |
[백준][Python] 2630 색종이만들기 (0) | 2021.08.27 |
[백준][Python] 21939 문제 추천 시스템 (0) | 2021.08.26 |
[백준][Python] 22867 종점 (0) | 2021.08.26 |