/*水题B - Ignatius and the PRincess IV时间: 2017/02/19题意:在一组数找到出现次数最多的数。题解:1.可以按map容器计数。2.可以排序后,线性计数3.因为最大的哪个数出现次数大于一半,可以如果遇见那个数+1,不是-1,那么剩下的肯定是那个数。*/#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <vector>#include <map>using namespace std;#define LL long long#define INF 0x3f3f3f3f#define PI acos(-1.0)#define E 2.71828#define MOD 1000000007#define N 1000010#define M 10010const double eps=1e-8;map<int,int> mp;int a[N];int main(){ int n; while(~scanf("%d",&n)) { mp.clear(); for(int i = 0; i < n; i++) { scanf("%d",&a[i]); mp[a[i]]++; } int ans = -INF,res; for(int i = 0; i < n; i++) { if(ans < mp[a[i]]) { ans = mp[a[i]]; res = a[i]; } } printf("%d/n",res); }}int main(){ int i,n; while(~scanf("%d",&n)) { for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); int t=1; for(i=1;i<n;i++) { if(a[i]!=a[i-1]) t=1; else t++; if(t==(n+1)/2) { printf("%d/n",a[i]); break; } } }}int main(){ int i,n; while(~scanf("%d",&n)) { int a,ans,ci = 0; for(i=0;i<n;i++) { scanf("%d",&a); if(ci == 0) { ci++; ans = a; } else { if(a == ans) ci++; else ci--; } } printf("%d/n",ans); }}
新闻热点
疑难解答