我的想法,第一个想到是用stl的map,然后想到的是排序,中间的数字就是结果。
#include <cstdio>#include <algorithm>using namespace std;int num[1000000];int main(){ int n; while(scanf("%d",&n) != EOF) { for(int i = 0;i < n; ++i) scanf("%d",&num[i]); sort(num,num+n); PRintf("%d/n",num[n/2]); } return 0;}我又搜了一下别人的题解,发现新大陆—>同等消除 http://www.cnblogs.com/kuangbin/archive/2011/07/30/2122217.html
#include <cstdio>int main(){ int res,cnt,n,num; while(scanf("%d",&n) != EOF) { cnt = 0; for(int i = 0; i < n; ++i) { scanf("%d",&num); if(cnt == 0) { res = num; cnt++; } else { if(res == num) ++cnt; else --cnt; } } printf("%d/n",res); } return 0;}新闻热点
疑难解答