Cod sursa(job #1304611)
| Utilizator | Data | 29 decembrie 2014 00:20:06 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <stdio.h>
int n;
int a[1000001];
int main()
{
FILE *fin,*fout;
fin=fopen("elmaj.in","r");
fout=fopen("elmaj.out","w");
int carry,counter=1;
fscanf(fin,"%d",&n);
for(int i=1;i<=n;i++) fscanf(fin,"%d",&a[i]);
carry=a[1];
for(int i=2;i<=n;i++)
{
if(a[i]==carry) counter++;
else
{
counter--;
if(counter==0) carry=a[i];
}
}
counter=0;
for(int i=1;i<=n;i++)
{
if(a[i]==carry) counter++;
}
if(counter>n/2+1)
{
fprintf(fout,"%d %d\n",carry,counter);
}
else fprintf(fout,"-1");
}
