けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 190 A - Very Very Primitive Game (灰色, 100 点)

これは整理するのが大変!!!

問題概要

高橋君は  A 個のアメを持っていて、青木君は  B 個のアメを持っている。

交互に自分のアメを食べていき、先に食べられなくなった方が負けである。 C = 0 ならば高橋君が先手、 C = 1 ならば青木君が後手。

どちらか勝つか?

解法

落ち着いて整理して考えよう。まず......

  •  A の方が多いときは、どちらが先手であっても、高橋君が勝つ
  •  B の方が多いときは、どちらが先手であっても、青木君が勝つ

ということを確認しておこう (ぜひ実験してみて確かめよう!)。

その上で、 A = B の場合が問題となる。この場合は

  • 先手が高橋君のとき ( C = 0) は、高橋君が先にアメがなくなるので、青木君の勝ち
  • 先手が青木君のとき ( C = 1) は、青木君が先にアメがなくなるので、高橋君の勝ち

となる。

#include <bits/stdc++.h>
using namespace std;

string taka = "Takahashi";
string aoki = "Aoki";

int main() {
    int A, B, C;
    cin >> A >> B >> C;
    
    string res;
    if (A > B) res = taka;
    else if (A < B) res = aoki;
    else if (C == 0) res = aoki;
    else res = taka;
    cout << res << endl;
}