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;
}

posted @ 2013-08-07 19:38  hjf007  阅读(211)  评论(0编辑  收藏  举报