问题描述
五一节,何老板的公司票选优秀员工。何老板的公司共有m 个候选员工,编
号1 到m。共有n 个员工参与了投票,每人只能投一票,得票过半(票数>n/2)的
员工将获得优秀员工奖,何老板请你快速找出这个员工的编号。
输入格式
第一行,一个整数n
接下来一行,n 个空格间隔的整数,表示每个员工投票的编号
输出格式
一行,一个整数,表示当选优秀员工的编号。(数据保证一定有解)
样例输入
输入样例1:
7
8 1 8 2 8 9 8
输入样例2:
20
3 9 3 9 3 9 3 3 12 8 3 3 2 3 3 9 3 9 10 3样例输出
输出样例1:
8
输出样例2:
3
提示
对于30%的数据,有m<=1,000,n<=1,000
对于100%的数据,有m<=1,000,000,000,n<=1,000,000
注意:此题空间限制为0.5m
#include<bits/stdc++.h>
using namespace std;
int n,a,cnt,ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a);
if(cnt==0) ans = a;
if(a==ans)cnt++;
else cnt--;
}
printf("%d",ans);
}