取石子(一)



3000 ms  |  内存限制: 65535



2


第一行是一个正整数n表示有n组测试数据

输入有不到1000组数据,每组数据一行,有两个数N和M,之间用空格分隔。

输出 对于每组数据,输出一行。如果先取的TT可以赢得游戏,则输出“Win”,否则输出“Lose”(引号不用输出) 样例输入

2 1000 1 1 100


样例输出

Lose Win


来源 经典题目

上传者 张云聪


思路:



        巴什博奕,总数为n,每次最大取值为m,利用公式



     n = k * (1 + m) + r (0 <= r <= m), 如果 r != 0, 那么先手必赢!策略如下:



     当 r != 0 时: 首先先手报r个,那么剩下k倍(1+m)个数,那么我们每次报数1+m-k(B)个数就一定能保证最后剩下1+m个,此时,无论后手报几个,都会输!



         当 r = 0 时, 与上面相反,后手一定会赢!






代码:


1. #include <iostream>  
2.   
3. using namespace std;  
4.   
5. int main()  
6. {  
7. int k;  
8.     cin >> k;  
9. while(k --){  
10. int n, m;  
11.         cin >> n >> m;  
12. if(n % (m + 1) == 0)  
13. "Lose" << endl;  
14. else   
15. "Win" << endl;  
16.     }  
17.   
18. return 0;  
19. }