#arc091d. [arc091_d]Strange Nim

[arc091_d]Strange Nim

题目描述

高桥和青木正在玩一个取石子的游戏。一开始,有 NN 堆石头,第 ii 堆中有 AiA_i 个石头,并且与其关联的整数为 KiK_i

从高桥开始,高桥和青木轮流执行以下操作:

  • 选择一堆石头。如果选择第 ii 堆,且该堆剩下 XX 个石头,从该堆中移除 11floor(X/Ki)floor(X/K_i)(包括 11floor(X/Ki)floor(X/K_i))之间的任意数量的石头。

第一个无法执行操作的玩家将输掉游戏。假设双方玩家都采取最优策略,请确定游戏的获胜者。其中,floor(x)floor(x) 表示不大于 xx 的最大整数。

约束条件

  • 1N2001 \leq N \leq 200
  • 1Ai,Ki1091 \leq A_i,K_i \leq 10^9
  • 所有输入数据均为整数。

输入

从标准输入读取输入。数据格式如下:

NN A1A_1 K1K_1 : ANA_N KNK_N

输出

如果高桥会赢得游戏,则打印 Takahashi;如果青木会赢得游戏,则打印 Aoki


示例输入 1

2
5 2
3 3

示例输出 1

Aoki

一开始,可以从第一堆中最多移除 floor(5/2)=2floor(5/2)=2 个石头,从第二堆中最多移除 floor(3/3)=1floor(3/3)=1 个石头。

  • 如果高桥首先从第一堆中拿走两个石头,现在可以从第一堆中最多移除 floor(3/2)=1floor(3/2)=1 个石头,从第二堆中最多移除 floor(3/3)=1floor(3/3)=1 个石头。
  • 然后,如果青木从第二堆中拿走一个石头,现在可以从第一堆中最多移除 floor(3/2)=1floor(3/2)=1 个石头,而从第二堆中无法再移除更多的石头(因为 floor(2/3)=0floor(2/3)=0)。
  • 然后,如果高桥从第一堆中拿走一个石头,现在可以从第一堆中最多移除 floor(2/2)=1floor(2/2)=1 个石头,而从第二堆中无法再移除更多的石头。
  • 然后,如果青木从第一堆中拿走一个石头,现在可以从第一堆中最多移除 floor(1/2)=0floor(1/2)=0 个石头,而从第二堆中无法再移除更多的石头。

不能进行更多操作,因此青木获胜。如果高桥采取不同的策略,青木也可以通过相应的策略获胜。


示例输入 2

3
3 2
4 3
5 1

示例输出 2

Takahashi

示例输入 3

3
28 3
16 4
19 2

示例输出 3

Aoki

示例输入 4

4
3141 59
26535 897
93 23
8462 64

示例输出 4

Takahashi