题目:最后一个
某天,wym6912和wang9897玩游戏。
有n个透明盒子,每个盒子里有ai个小球,每个玩家每轮可以选择其中的一个非空的盒子取走若干个小球,且每次最少取走一个。取走最后一个小球的玩家失败。
wym6912先手,在两人都足够聪明的情况下(每次都能选择最优方案),请问谁最终能赢?
输入
多组数据,处理到文件尾(EOF) 结束
对于每组数据:
- 第一行一个正整数n,表示有n个盒子
- 第二行为n个数字,表示每个盒子里小球的个数ai
输出
若wang9897赢,则输出"orzwang9897"
若wym6912赢,则输出"orzwym6912"
(均不含引号)
样例输入
2
1 1
3
1 1 1
样例输出
orzwym6912
orzwang9897
提示
1<=n<=6
0 <=ai <=6
∑ai >=1
#include<stdio.h>
int main(){
int n,m,x;
while((scanf("%d",&m))!=EOF){
int num=0;
int s=0;
while(m--){
scanf("%d",&x);
if(x>1)
num++;
s^=x;
}
if(num==0&&s==0||(num>0&&s!=0)){
printf("orzwym6912\n");
}
else
printf("orzwang9897\n");
}
return 0;
}
如需要学习尼姆博弈,参见:
https://blog.csdn.net/dear_jia/article/details/80200170