双异或

#include<stdio.h>
#include<math.h>
int main()
{
//freopen("in.txt","r",stdin);
int n,i,t,s=0,a=0,b=0;
int p[10000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
s=s^p[i];
}
printf("%d\n\n",s);
for(t=s%2,i=0;!t;i++)
{
s=s/2;
t=s%2;
}
s=pow(2,i);
for(i=0;i<n;i++)
{
if(s&p[i])
a=a^p[i];
else
b=b^p[i];
}
printf("%d %d\n",a,b);
return 0;
}

posted @ 2014-11-18 14:52  煎饼馃子  阅读(133)  评论(0编辑  收藏  举报