#include<stdio.h> #define maxn 200000 int a[maxn]; int main() { int n,i,sum,sum2; while(scanf("%d",&n),n) { sum=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); sum^=a[i]; } if(sum==0) { printf("No\n"); continue; } else { printf("Yes\n"); for(i=0;i<n;i++) { if(a[i]>(sum^a[i])) { sum2=0; sum2=sum; sum2=sum2^a[i]; printf("%d %d\n",a[i],sum2);//这里就是找到第一次取,可以取胜的方法! } } } } return 0; }
S=3^6^9 a^a=0 a^b=c->
3^6=5, 在9里拿掉4个使得剩5个,这样就使得S=0
S^9=3^6^9^9=3^6
好好理解尼姆博弈就知道了!