#include <iostream>
using namespace std;
int a[200002];
int main()
{
int m,n,j,i,k,t,temp,ans,flag;
while (scanf("%d",&n)!=EOF && n)
{
flag = 0;
for (i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
if (n == 1)
{
printf("Yes/n");
printf("%d 0/n",a[0]);
continue;
}
ans = a[0];
for (i=1;i<n;i++)
{
ans = a[i]^ans;
}
for (i=0;i<n;i++)
{
//遍历取每一堆的情况
//取一堆,其它的数都要XOR一下
if (i == 0)
{
ans = ans^a[i];
}
else
{
ans = ans^a[i-1];
ans = ans^a[i];
}
if (ans < a[i])
{
if (flag == 0)
{
printf("Yes/n");
printf("%d %d/n",a[i],ans);
flag = 1;
}
else
{
printf("%d %d/n",a[i],ans);
}
}
}
if (flag == 0)
{
printf("No/n");
}
}
return 0;
}
HDU 2176
最新推荐文章于 2021-10-06 16:40:22 发布