Cod sursa(job #873966)
Utilizator | Bogdan Mucenic mucenic_b101 | Data | 7 februarie 2013 19:42:22 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include<stdio.h>
int v[1000001];
int main (){
FILE *f,*g;
f=fopen("elmaj.in", "r");
g=fopen("elmaj.out", "w");
int n,i,cand,increm=1;
fscanf(f,"%d%d",&n,&v[0]);
cand=v[0];
for(i=1;i<n;i++)
{
fscanf(f,"%d",&v[i]);
if(v[i]==cand) increm++;
else increm--;
if(increm<0)
{
cand=v[i];
increm=1;
}
}
if(increm)
{
increm=0;
for(i=0;i<n;i++)
if(v[i]==cand) increm++;
if(increm>=(n>>1)+1) fprintf(g,"%d %d",cand,increm);
}
else fprintf(g,"-1");
fclose(f);
fclose(g);
return 0;
}