1835 欧几里得游戏
Submit solution
Points:
100
Time limit:
1.0s
Memory limit:
32M
Problem types
Allowed languages
C, C++, Java, Python
Description
欧几里得的两个后代Swan和Ollie在玩一种数字游戏。这个游戏是他们的祖先欧几里得发明的。
给定两个正整数M和N,从Swan开始,取其中较大的数(假定M>N),减去较小的数若干倍,M变成了K(当然K不能小于0),从而台面上变成K,N;
然后是Ollie下手,对K和N进行同样的操作;
再轮到Swan玩,...一直可以进行下去,直到一个人下手时,让一个数变成了0,这个人就是赢家。
例如:对于25 7这两个数。Swan先下手玩。
Swan做成: 11 7 (25-72=11,还可以选25-71=18,或选25-7*3=4)
Ollie做成: 4 7 (11-7*1=4,没得选)
Swan做成: 4 3 (7-4*1=3,没得选)
Ollie做成: 1 3 (4-1*3=1,没得选)
Swan做成: 1 0 (3-13=0,赢了,没必要选3-12=1,或者3-1*1=2)
假设每次游戏总是从Swan开始,假设他们总是“完美”地操作,不让赢的机会丢失,谁会取得胜利呢?
Input
第一个数是数据的组数n(n<1000)。后跟n对正整数M,N。(0<M,N<10^9)。
Output
对于每个数对M,N,以一行的形式输出要么“Swan wins”,要么“Ollie wins”。
Sample
Input
2
25 7
24 15
Output
Swan wins
Ollie wins
Source: qn
Comments