这种特别大的数,开一个数组不现实,于是想到用map
HDU不支持bits/stdc++.h让我郁闷了好久,都要一个一个打头文件好麻烦···
刚开始还把map定义成全局函数导致WA了
后来改成在循环内部就AC了
代码如下
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
unsigned long n;
scanf("%lu",&n);
while(n!=0){
map<unsigned long,unsigned long>mp;
map<unsigned long,unsigned long>::iterator it;
for(unsigned long i=1;i<=n;i++){
unsigned long x;
scanf("%lu",&x);
if(mp.count(x)==0)
mp[x]=1;
else
mp[x]++;
}
for(it=mp.begin();it!=mp.end();it++){
if((it->second)%2!=0){
printf("%lu\n",it->first);
break;
}
}
scanf("%lu",&n);
}
return 0;
}