Problem 1011 - 金子上的友情
/*Wm 和Qinz 是一对好朋友,他俩有着一段伟大的友谊,然而这段友谊是建立在一场残酷的竞争之后的英熊惺惺相惜,那场战斗是这样的
----------------------我------是------华------丽--------的-------分--------割----------线------------------
地上有三堆金子,第i堆里面a[i]颗金子,每个人轮流从任意一堆金子中取出来任意多颗,当然取出来的颗数不能超过这堆金子的剩余量,现在告诉你这三堆金子每堆的颗数,如果场上三堆金子都剩余0颗的话,没金子可取的那个人要把手中取到的金子全部交给对方,并且对方获胜。
Wm先取金子,输出最后获胜的人的名字
Input
每行三个数,分别为第一,第二,第三堆金子的颗数(0<=颗数<2^16),题目可能包含多组数据。
Output
输出获胜者的名字
Sample Input
1 1 1
1 2 3
Sample Output
Wm
Qinz*/
典型尼姆博弈:如果三堆东西数值的二进制表示的异或结果为0则先拿者输,否则赢。
#include<stdio.h>
int main()
{
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
puts(a^b^c?"Wm":"Qinz"); //puts(a^b^c==0?"Qinz":"Wm")不对,==优先级高于^,所以应写成(a^b^c)==0
return 0;
}