编程题
欧几里得游戏 ## 来源 University of Waterloo Local Contest 2002.09.28 (ZOJ1913, POJ2348) ## 题目描述 两个玩家,Stan和Ollie,玩欧几里得游戏。他们从两个自然数开始。第一个玩家,Stan,从两个数的较大数中减去较小数的任意正整数倍,只要差为非负即可。然后,第二个玩家,Ollie,对得到的两个数进行同样的操作,然后又是Stan,等等。直至某个玩家将较大数减去较小数的某个倍数之后为0时为止,此时,游戏结束,该玩家就是胜利者。 例如,两个玩家从两个自然数25和7开始: ```txt 25 7 Stan: 11 7 Ollie: 4 7 Stan: 4 3 Ollie: 1 3 Stan: 1 0 ``` 因此最终Stan赢得这次游戏。 ## 输入描述 输入文件包含若干个测试数据,每个测试数据占一行,为两个正整数,表示每次游戏时两个整数的初始值,每次游戏都是从Stan开始。输入文件的最后一行为两个0,表示输入结束,这一行不需处理。 ## 输出描述 对每个测试数据,输出一行,为"Stan wins"或"Ollie wins"。假定Stan和Ollie玩这个游戏都玩得很好,即Stan和Ollie都想赢得比赛,他们在走每一步时都是尽可能选择使得他们能赢得比赛的步骤。例如,在上面的例子中,如果Stan第一步得到18 7或4 7,则Stan不可能赢得游戏,所以Stan必须在第一步中得到11 7。 ## 样例输入 ```txt 34 12 15 24 0 0 ``` ## 样例输出 ```txt Stan wins Ollie wins ```
查看答案
赣ICP备20007335号-2