Cod sursa(job #1718491)
Utilizator | Horia Banciu Horia14 | Data | 18 iunie 2016 00:18:07 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.68 kb |
#include<cstdio>
using namespace std;
int n,v[1000000];
int main()
{
int Candidat,Nr,i;
FILE *f1,*f2;
f1=fopen("elmaj.in","r");
f2=fopen("elmaj.out","w");
fscanf(f1,"%d",&n);
for(i=0;i<n;i++)
fscanf(f1,"%d",&v[i]);
Candidat=v[0]; Nr=1;
for(i=1;i<n;i++)
if(Candidat==v[i])
Nr++;
else
if(Nr)
Nr--;
else
{
Candidat=v[i];
Nr=1;
}
for(Nr=i=0;i<n;i++)
if(v[i]==Candidat)
Nr++;
if(Nr>n/2)
fprintf(f2,"%d %d\n",Candidat,Nr);
else
fprintf(f2,"-1\n");
fclose(stdin); fclose(stdout);
return 0;
}