#codefestival2015okinawac. [code_festival_2015_okinawa_c]Cat versus Wolf
[code_festival_2015_okinawa_c]Cat versus Wolf
问题
猫小偷和狼索斯将玩一种游戏来庆祝新年。有个设计的方块层级,方块的顶部有一个达摩娃娃(一种日本传统装饰品)。两名玩家将轮流移除方块,并保持达摩娃娃在顶部。
下图展示了一个例子,奇数层级(从底部开始)方块的摆放,以及偶数层级(从底部开始)方块的摆放。
这是一个方块的例子(左图),奇数层级(从底部开始)方块的俯视图(中图),偶数层级(从底部开始)方块的俯视图(右图)。
猫小偷先开始,然后他们轮流从剩下的方块中每次移除一个方块(交替进行)。然而,如果玩家移除一个方块会导致剩下的方块的不稳定摆放,则不允许移除该方块。其他任何方块都可以被移除。如果只剩下不能被移除的方块,轮到的玩家将输掉游戏。
不稳定摆放 定义如下: 在个层级方块中,有个或多个层级没有方块,或者在该层级的任一侧端点只有个方块。
给出正在进行的游戏的状态。因为猫小偷先开始,如果已经移除了偶数个方块,则下一个轮到猫小偷;否则,如果已经移除了奇数个方块,则下一个轮到狼索斯。请确定两名玩家都尽力而为时,哪名玩家最终会赢得比赛。
输入
输入将通过标准输入给出,格式如下。
:
- 第一行给出一个整数。
- 接下来的行用于给出进行中游戏的状态。在这些行中,从第行到第行包含关于第层级(从底部开始)方块的信息。在第行,给出、、,它们之间没有分隔符。这些字符要么是
#
要么是.
。如果是#
,表示未移除位于第层级(从底部开始)相应位置的方块。如果是.
,表示已移除位于第层级(从底部开始)相应位置的方块。 - 若为奇数,对于,有。
- 若为偶数,对于,有。
左图表示奇数层级(从底部开始)方块的摆放,右图表示偶数层级(从底部开始)方块的摆放。
输入不会出现已经是不稳定摆放 的情况。
输出
请确定哪名玩家最终将赢得比赛,假设两名玩家都尽力而为。如果猫小偷获胜,请在一行中输出Snuke
。否则,如果狼索斯获胜,请在一行中输出Sothe
。
在输出的结尾打印一个换行符。
输入示例 1
2
#.#
#.#
#.#
###
###
...
输出示例 1
Snuke
如果猫小偷移除未移除的位于第2层级(从底部开始)的端点上的方块,狼索斯将没有可以移除的方块。
输入示例 2
4
###
###
###
...
###
###
##.
##.
##.
###
###
###
输出示例 2
Sothe
输入示例 3
4
###
###
###
...
###
###
.#.
.#.
.#.
###
###
###
输出示例 3
Sothe
请注意,输入状态中已经移除了个方块,因此下一个轮到狼索斯。