問題概要
問題ページ
-
B - Bouzu Mekuri
問題ページへ移動する
問題文
\(N\) 枚のカードからなる山札があります。
それぞれのカードは、「良いカード」か「悪いカード」かのどちらかです。
高橋君と青木君は、この山札を使って対戦ゲームをします。
このゲームでは、\(2\) 人は交互に山札の一番上のカードを引いて、そのカードを食べます。
先に悪いカードを食べたプレイヤーの負けです。(ここで、山札には少なくとも \(1\) 枚の悪いカードが含まれていることが保証されます。)
0
と 1
からなる文字列 \(S\) が与えられます。\(i = 1, 2, \ldots, N\) について、
- \(S\) の \(i\) 文字目が
0
のとき、山札の上から \(i\) 番目のカードが良いカードであることを表します。 - \(S\) の \(i\) 文字目が
1
のとき、山札の上から \(i\) 番目のカードが悪いカードであることを表します。
高橋君が先手でゲームを始めるとき、高橋君と青木君のどちらが負けるかを答えてください。
制約
- \(1 \leq N \leq 10^5\)
- \(N\) は整数
- \(S\) は
0
と1
からなる長さ \(N\) の文字列 - \(S\) は少なくとも \(1\) 個の
1
を含む。
問題の考察
ACコード
import sys
def solve():
input = sys.stdin.readline
mod = 10 ** 9 + 7
n = int(input().rstrip('\n'))
s = str(input().rstrip('\n'))
for i, v in enumerate(s):
if v == "1":
if i % 2 == 0:
print("Takahashi")
else:
print("Aoki")
exit()
if __name__ == '__main__':
solve()