Official

A - シンプル石取りゲーム/Simple Game Editorial by kyopro_friends


まず、\(T=0\) のときのゲームを考えます。 \(N\) が偶数個のときは後手が最後の石を取り除くので後手の勝ち、 \(N\) が奇数個のときは先手が最後の石を取り除くので先手の勝ちです。

同様に、\(T=1\) のときのゲームでは、 \(N\) が偶数個のときは後手が最後の石を取り除くので先手の勝ち、 \(N\) が奇数個のときは先手が最後の石を取り除くので後手の勝ちです。

それぞれのケースを場合分けする次のような実装でACを得ることができます。

実装例(Python)

N,S,T=map(int,input().split())

if S==0:
  first = "Alice"
  second = "Bob"
else:
  first = "Bob"
  second = "Alice"

if T==0:
  if N%2==0:
    print(second)
  else:
    print(first)
else:
  if N%2==0:
    print(first)
  else:
    print(second)

なお、\(N\) の偶奇及び \(S,T\) の値が変化するごとに勝者が入れ替わることから、排他的論理和を使った次のような解法も存在します。

実装例(Python)

N,S,T=map(int,input().split())

if N%2 ^ S ^ T:
  print("Alice")
else:
  print("Bob")

posted:
last update: