题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68966#problem/B
题目没有给出每个数的大小,搞的不敢开常数数组。看到别人开个5000的计数数组就过了。。。
看着N达到了999999,心想map肯定会TLE吧,MD,看到别人map也顺利AC,看来我对1s的数量级还是不太能理解啊。。。。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
using namespace std;
//map<int,int> mp;
int N;
int cnt[50000];
int main(){
while(cin>>N){
// mp.clear();
memset(cnt,0,sizeof(cnt));
int t,ans;
for(int i=0;i<N;i++){
scanf("%d",&t);
cnt[t]++;//mp[t]++;
if(cnt[t]==(N+1)/2) ans=t;
//if(map[t]==(N+1)/2) ans=t;
}
printf("%d\n",ans);
}
return 0;
}