首页 > 代码库 > codevs4419 FFF 团卧底的菊花

codevs4419 FFF 团卧底的菊花

题目描述 Description

FFF 团卧底在这次出题后就知道他的菊花可能有巨大的危险,于是他提前摆布好了菊花阵,现在菊花阵里有若干朵菊花,出现次数最多的那一朵就是出题人的,你的任务是需要找出出题人的菊花。

输入描述 Input Description

第一行为 n

第二行为 n 朵菊花

输出描述 Output Description

一行,为出题人的菊花

样例输入 Sample Input

5

1 1 1 2 3

样例输出 Sample Output

1

数据范围及提示 Data Size & Hint

对于 100%的数据,n<=5000000,每个数都在 int 范围内,保证出题人的菊花出现的次数大于等于[n/2]

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<map>#include<vector>using namespace std;struct dat{    int pow;    int id;    dat(int pow,int id):pow(pow),id(id){}};const long long sed = 31,Sed = 131,mod = 10007,Mod = 92311;long long big = 0,rec = 0,n;long long m,cmd;vector<dat> hash[mod];inline int add(){    long long tmp = 0,Tmp = 0;    tmp = (cmd*sed)%mod;    Tmp = (cmd*Sed)%Mod;    for(int i = 0;i < hash[tmp].size();i++){        if(hash[tmp][i].id == Tmp) return ++hash[tmp][i].pow;    }    hash[tmp].push_back(dat(1,Tmp));    return 1;}int main(){    cin>>n;    for(int i = 1;i <= n;i++){        scanf("%d",&cmd);        rec = add();        if(rec >= (n>>1)){            cout<<cmd;            return 0;        }    }    return 0;}

 

codevs4419 FFF 团卧底的菊花