/*水題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); }}
新聞熱點
疑難解答