Steve和Alex每天都在为午饭吃什么而发愁,因为吃的东西实在是太多了,而且很多都特别好吃。为了解决吃什么的问题,Alex决定每次吃饭前发布一个问卷调查,让他的好朋友选出他们今天最想吃的食物,然后Alex会根据问卷的结果来确定吃什么
每个问卷只收集一种食物,每个食物都由一个数字num来表示。Alex会选出问卷中出现次数超过问卷总数一半的数字来决定今天的午饭
输入格式
单组输入,每组两行
第一行有一个整数N (1≤N≤2×107)
第二行有N个整数num (num≤1018),代表每个问卷中的数字
输出格式
输出一个整数,即出现次数超过N2的数
样例
input
4 1 1 1 2
output
1
#include<stdio.h>
#include<map>
#include<algorithm>
using namespace std;
typedef long long ll;
map<ll,int>ma;
int main()
{
int n;
scanf("%d",&n);
int k=n/2;
int flag=0;
ll ans;
for(int i=0;i<n;i++)
{
ll x;
scanf("%lld",&x);
if(!flag) ans=x;
if(x==ans) flag++;
if(x!=ans) flag--;
}
printf("%lld\n",ans);
return 0;
}
input
5 2 2 3 3 3
output
3
提示
保证每组数据一定存在符合条件的数