Pagini recente » Cod sursa (job #1491789) | Cod sursa (job #2534671) | Cod sursa (job #2253429)
// hashuri 2
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
#define MOD 666013
vector< pair<long long,int> > h[MOD];
vector< pair <long long,int> >::iterator findValue(long long x) {
int bucket=x%MOD;
vector< pair<long long,int> >::iterator it;
for(it=h[bucket].begin();it!=h[bucket].end();it++)
if(it->first==x) return it;
return h[bucket].end();
}
int insertUpdate(long long x){
vector<pair <long long,int> >::iterator it=findValue(x);
if(it==h[x%MOD].end()){
h[x%MOD].push_back(pair<int,int>(x,1));
return 1;
}
it->second++;
return it->second;
}
int main(){
ifstream in("elmaj.in");
int n,i,x;
long long sol=-1;
in>>n;
for(i=0;i<n;i++){
in>>x;
if(insertUpdate(x)>n/2) sol=x;
}
FILE *out=fopen("elmaj.out","w");
if(sol==-1) fprintf(out,"-1");
else fprintf(out,"%lld %i",sol,findValue(sol)->second);
fclose(out);
in.close();
return 0;
}