結果
問題 |
No.3120 Lower Nim
|
ユーザー |
|
提出日時 | 2025-04-24 14:53:22 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,512 bytes |
コンパイル時間 | 377 ms |
コンパイル使用メモリ | 12,132 KB |
実行使用メモリ | 28,800 KB |
平均クエリ数 | 1.00 |
最終ジャッジ日時 | 2025-04-24 14:53:30 |
合計ジャッジ時間 | 7,213 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 1 |
other | RE * 43 |
ソースコード
#!/usr/bin/env python3 import sys def input(): return sys.stdin.readline() def main(): data = input().split() N = int(data[0]) A = list(map(int, data[1:])) total = sum(A) # 初手の選択: 総和が奇数なら先攻、偶数なら後攻 if total % 2 == 1: print("First", flush=True) my_turn = True else: print("Second", flush=True) my_turn = False # ゲームループ while True: if my_turn: # 自分の手番: いずれかの山から1を取る # A[i] >= 1 を満たす最初のインデックスを選択 for idx, v in enumerate(A): if v > 0: i = idx break x = 1 A[i] -= x print(i + 1, x, flush=True) # judgeからretを読み込む ret = int(input()) if ret == 1 or ret == -1: return # 次は相手の手番 my_turn = False else: # ジャッジの手番: i, x を読み込む parts = input().split() if not parts: return j_i = int(parts[0]) - 1 j_x = int(parts[1]) # ret を読み込む ret = int(input()) if ret == -1: return # 状態更新 A[j_i] -= j_x # 次は自分の手番 my_turn = True if __name__ == '__main__': main()