🍬

# ABC190 A - Very Very Primitive Game

2021/01/31に公開

ABC190 A - Very Very Primitive Game

問題へのリンク

https://atcoder.jp/contests/abc190/tasks/abc190_a

問題概要

高橋くんと青木くんがゲームを行う。二人はそれぞれはじめに A 個、 B 個アメを持っている。C = 0 なら高橋くんが先手、 C = 1 なら青木くんが先手で、アメを一つ食べていくのを繰り返す。先に食べられなくなったほうが負けの時、どちらが勝つか答えよ。

制約

0 \leq A, B \leq 100

ABC中の解答

先手、後手だけ気をつけてどちらの数字が大きいかを考えればよい。
エレガントにする方法を考えてみたけどすぐには思い浮かばず時間がもったいないと思って結局if文ゴリゴリで書いた。

A, B, C = map(int, input().split())
if C == 0:
    if A <= B:
        print('Aoki')
    else:
        print('Takahashi')
else:
    if A < B:
        print('Aoki')
    else:
        print('Takahashi')

https://atcoder.jp/contests/abc190/submissions/19774243

他の解法1

次の日に青木くんが先手のときは青木くんのアメから1引いて常に高橋くん先行にしておけば A > B というif文だけでよいと気づいた。

A, B, C = map(int, input().split())
if C == 1:
    B -= 1
ans = 'Takahashi' if A > B else 'Aoki'
print(ans)

https://atcoder.jp/contests/abc190/submissions/19834162

公式解法1

他の解法1と逆に高橋くんのアメに1足すと考えたら C をそのまま A に足せばよい。
そうそうこういうエレガントなのが思いつきたかった。

A, B, C = map(int, input().split())
ans = 'Takahashi' if A + C > B else 'Aoki'
print(ans)

https://atcoder.jp/contests/abc190/submissions/19843011

Discussion