编程题
                欧几里得游戏

来源

University of Waterloo Local Contest 2002.09.28 (ZOJ1913, POJ2348)

题目描述

两个玩家,Stan和Ollie,玩欧几里得游戏。他们从两个自然数开始。第一个玩家,Stan,从两个数的较大数中减去较小数的任意正整数倍,只要差为非负即可。然后,第二个玩家,Ollie,对得到的两个数进行同样的操作,然后又是Stan,等等。直至某个玩家将较大数减去较小数的某个倍数之后为0时为止,此时,游戏结束,该玩家就是胜利者。

例如,两个玩家从两个自然数25和7开始:

        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。

样例输入

34 12
15 24
0 0

样例输出

Stan wins
Ollie wins
查看答案
赣ICP备20007335号-2