#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <string>
#include <string.h>
#include <stdio.h>
#include <cmath>
#include <map>
#include <functional>
#include <set>
using namespace std;
//1370
int s,t;
int dig[100010];
int main(){
int n,cnt,size;
//freopen("input.txt","r",stdin);
while(scanf("%d",&n)!=EOF){
cnt=1;size=0;
scanf("%d",&s);
dig[size++]=s;
n--;
if(n==0) {printf("%d\n",s);continue;}
while(n--){
scanf("%d",&t);
dig[size++]=t;
if(s==t) cnt++;
else cnt--;
if(cnt==0){
cnt=1;
s=t;
}
}
cnt=0;
for(int i=0;i<size;i++)
if(s==dig[i])
cnt++;
if(cnt>size/2)
printf("%d\n",s);
else
printf("-1\n");
}
return 0;
}
/**************************************************************
Problem: 1370
User: cust123
Language: C++
Result: Accepted
Time:30 ms
Memory:1908 kb
****************************************************************/
题目1370:数组中出现次数超过一半的数字
最新推荐文章于 2022-07-05 10:16:23 发布
