Cod sursa(job #918370)
Utilizator | Data | 18 martie 2013 20:29:04 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.52 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*f=fopen("elmaj.in","r");
FILE*g=fopen("elmaj.out","w");
int v[1000010];
int main()
{
int n,i,elmaj,lo,hi;
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
sort(v+1,v+n+1);
elmaj=v[n/2+1];
for(i=n/2+1;v[i]==elmaj;--i);
lo=i+1;
for(i=n/2+1;v[i]==elmaj;++i);
hi=i-1;
if(hi-lo+1>=n/2+1)
fprintf(g,"%d %d\n",elmaj,hi-lo+1);
else
fprintf(g,"-1");
return 0;
}