-
[1054] 筷子大作战
- 时间限制: 3000 ms 内存限制: 65535 K
- 问题描述
-
我想说的是,小方是一个粗心的娃娃。今天在食堂打翻了洗碗大伯的篮子,筷子落了一地。
结果大伯怒了,硬是要小方把筷子一对一对配回去。
每只筷子都是有长度的,长度一样的筷子才算是一对。不过洗碗大伯跟小方说其中有一只筷子是落单的。你能帮小方找出落单的筷子的长度吗?
- 输入
-
本题有多组数据,以EOF结束。
每组数据第一行为一个正整数N,代表筷子的支数(1 <= N <= 5000000)。
接下去一行有N个正整数,代表每只筷子的长度Li(1 <= Li <= 2147483647),可能有很多筷子的长度都是一样的。
- 输出
-
对于每组数据,输出落单的筷子的长度。
- 样例输入
-
5 1 2 1 2 3
- 样例输出
-
3
- 提示
-
无
- 来源
-
XadillaX
- 操作
-
思路:异或,最后的答案就是多出来的筷子。
代码:
#include"cstdio"
#include"cstring"
#include"iostream"
#include"algorithm"
using namespace std;
#define LL __int64
int main()
{
LL N;
while(scanf("%I64d",&N) != EOF)
{
LL a,b;
a = 0;
while(N--)
{
scanf("%I64d",&b);
a ^= b;
}
printf("%I64d\n",a);
}
return 0;
}