結果

問題 No.1665 quotient replace
ユーザー titia
提出日時 2021-09-03 21:47:31
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 2,830 ms / 3,000 ms
コード長 673 bytes
コンパイル時間 368 ms
コンパイル使用メモリ 82,464 KB
実行使用メモリ 255,860 KB
最終ジャッジ日時 2024-12-15 12:11:47
合計ジャッジ時間 120,149 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
input = sys.stdin.readline

N=int(input())
AX=list(map(int,input().split()))

Grundy=[-1]*(10**6+1)
Grundy[1]=0
A=[i for i in range(10**6+1)]

for i in range(2,10**6+1):
    if A[i]==i:
        for j in range(i,10**6+1,i):
            A[j]=i

def fac(x):
    L={1}
    while x!=1:
        L|={l*A[x] for l in L}
        x//=A[x]
    return L
        

for i in range(2,10**6+1):
    S=set()
    for f in fac(i):
        S.add(Grundy[f])

    for k in range(1000):
        if k in S:
            continue
        else:
            Grundy[i]=k
            break

XOR=0
for ax in AX:
    XOR^=Grundy[ax]

if XOR!=0:
    print("white")
else:
    print("black")
    
0