Pagini recente » Cod sursa (job #2318349) | Cod sursa (job #1644887) | Cod sursa (job #1204679) | Cod sursa (job #956499) | Cod sursa (job #759621)
Cod sursa(job #759621)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
#define LIM 666013
vector<int>h[LIM];
int n;
int hash(int x){
return ((x>>2)*113)%LIM;
}
void insert(int x){
int p=hash(x);
h[p].push_back(x);
}
void elmaj(){
int p = 1,el ,sol ,nr = 1;
for(int i=2;i<LIM;i++)
if(h[i].size()>h[p].size())p=i;
sort(h[p].begin(),h[p].end());
// for(int i=0;i<h[p].size();i++)printf("%d ",h[p][i]);
el = h[p][0]; sol = 1;
for(int i=1;i<h[p].size();i++)
if(h[p][i]==h[p][i-1])
{
nr++;
if(nr>sol)
{
sol = nr;
el = h[p][i];
}
} else nr = 1;
if(sol>n/2)printf("%d %d\n",el,sol); else printf("-1\n");
}
int main(){
int x;
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
insert(x);
}
elmaj();
return 0;
}