結果
問題 | No.2165 Let's Play Nim! |
ユーザー |
![]() |
提出日時 | 2023-04-16 20:14:42 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 376 ms / 2,000 ms |
コード長 | 1,199 bytes |
コンパイル時間 | 179 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 95,428 KB |
平均クエリ数 | 697.67 |
最終ジャッジ日時 | 2024-10-12 02:41:37 |
合計ジャッジ時間 | 19,772 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 37 TLE * 1 |
ソースコード
def rec():ret = int(input())if ret == -1:exit()def inp():global gi, k = map(int, input().split())i -= 1g ^= A[i]dic[A[i]].remove(i)A[i] -= kif A[i] == 0:remain.remove(i)else:dic[A[i]].add(i)g ^= A[i]def find(x):j = 0if len(dic[x]) > 0:return next(iter(dic[x]))else:return -1from collections import defaultdictdic = defaultdict(set)n = int(input())A = list(map(int, input().split()))remain = set(range(n))g = 0for i, a in enumerate(A):g ^= adic[a].add(i)if g == 0:print(0)else:print(1)while 1:#print(A,g)if g != 0:i = find(g)if i == -1:for j in remain:gt = A[j] ^ gif gt <= A[j]:i = jbreakdic[A[i]].remove(i)to = A[i] ^ gsubt = A[i] - toA[i] = toif A[i] == 0:remain.remove(i)else:dic[A[i]].add(i)g = 0print(i + 1, subt)rec()#if sum(A) == 0:# print("finish")# exit()#print(A,g)inp()rec()