
문제 태그
아이디어
- 노멀게임임으로 마지막 돌을 가져가는 이가 이김. 기저사례를 0으로 둠
- 피보나치의 규칙은 없음으로 피보나치를 dp로 구하고 스프라그 그런디수도 dp로 직접 구해야함
- 돌 무더기 각각을 xor해서 0이면 선공이 이길 수 없음
정답
import sys
input = sys.stdin.readline
M = int(input())
heaps = list(map(int, input().split()))
max_h = max(heaps)
fibs = [1, 2]
while fibs[-1] + fibs[-2] <= max_h:
fibs.append(fibs[-1] + fibs[-2])
sg = [0] * (max_h + 1)
for i in range(1, max_h + 1):
seen = set()
for f in fibs:
if f > i:
break
seen.add(sg[i - f])
m = 0
while m in seen:
m += 1
sg[i] = m
res = 0
for h in heaps:
res ^= sg[h]
if res == 0:
print("cubelover")
else:
print("koosaga")