반응형
n = int(input())
bulbs = list(map(int,input().split()))
student = []
student_num = int(input())
for i in range(student_num):
student.append(list(map(int,input().split())))
for order in student:
if order[0] ==1:
rest = n//order[1]
for i in range(1,rest+1):
bulbs[order[1]*i - 1 ] = (bulbs[order[1]*i - 1 ] * -1) +1
if order[0] ==2:
limit_of_wing = min(order[1]-1, n-order[1] )
change_range = limit_of_wing
for j in range(1, limit_of_wing +1 ):
if bulbs[order[1]-j-1 ] ==bulbs[order[1]+j-1]:
pass
else:
change_range = j-1
break
for jj in range(2*change_range +1):
bulbs[order[1]-change_range +jj-1 ] = (bulbs[order[1]-change_range +jj-1 ] * -1) +1
for bulb_index in range(n):
if (bulb_index+1) %10 == 0:
print(bulbs[bulb_index], sep="\n")
else:
print(bulbs[bulb_index],end=" ")
반응형
'computer 지식 > 알고리즘 정복기' 카테고리의 다른 글
4396 지뢰찾기 백준 파이썬 (0) | 2021.10.13 |
---|---|
12933 오리 백준 파이썬 (0) | 2021.10.13 |
백준 1212 파이썬 (0) | 2021.10.11 |
백준 2753번 파이썬 (0) | 2021.10.11 |
백준 상어초등학교 21608 파이썬 (0) | 2021.10.11 |