有个粗心的同学。今天在食堂打翻了洗碗大伯的篮子,筷子落了一地。
结果大伯怒了,硬是要这位同学把筷子一对一对配回去。
每只筷子都是有长度的,长度一样的筷子才算是一对。不过洗碗大伯跟他说其中有一只筷子是落单的。你能帮这位粗心的同学找出落单的筷子的长度吗?
【输入】第一行为一个正整数 NN,代表筷子的支数(1≤N≤50000001≤N≤5000000)。
接下去一行有 NN 个正整数,代表每只筷子的长度 LiLi(1≤Li≤21474836471≤Li≤2147483647),可能有很多筷子的长度都是一样的。
【输出】输出落单的筷子的长度。
【输入样例】5 1 2 1 2 3 【输出样例】
3
这里我们可以用异或做位运算,得到结果
源代码:
#include<iostream> #include<cstdio> using namespace std; const int N=5e6+10; int n; int l; int res; int main(){cin>>n;for(int i = 1; i <= n; i++){int x;scanf("%d", &x);res^=x;}cout<<res<<endl;return 0; }