結果
問題 |
No.1506 Unbalanced Pocky Game
|
ユーザー |
|
提出日時 | 2024-03-28 19:38:18 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 82 ms / 2,000 ms |
コード長 | 1,351 bytes |
コンパイル時間 | 179 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 101,248 KB |
最終ジャッジ日時 | 2024-09-30 14:50:34 |
合計ジャッジ時間 | 6,401 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 63 |
ソースコード
def main(): N = int(input()) A = list(map(int, input().split())) # [2] # [0]にすれば勝ち # [2,3] # [2,1]→[2,0]→[0,0]で勝ち # これが成り立たないのは、[2,1]のように自分に末尾1が回ってきたとき # # 1が偶数個連続しているところは取れる操作が確定するし # 手番が戻ってくるだけなので無視してよい # 1は連続しないようにできる # もし末尾を除いた要素が手番の人の勝ちなら、末尾を1にして渡せば勝ち盤面で手番が戻ってくる # もし末尾を除いた要素が手番の人の負けなら、末尾を0にして渡せば相手が負けるので勝ち # つまり末尾要素が2以上で、要素数が2以上なら絶対に勝ち # 末尾要素が1のときは、残り要素が勝ちなら自分の負け、負けなら自分が勝ち is_alice_win = True while A: if len(A) == 1: if is_alice_win: print("Alice") else: print("Bob") return if A[-1] > 1: if is_alice_win: print("Alice") else: print("Bob") return A.pop() is_alice_win = not is_alice_win if __name__ == "__main__": main()