Cod sursa(job #1567032)
Utilizator | Andrei Cotor Andrei_Cotor | Data | 12 ianuarie 2016 21:17:16 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<stdio.h>
using namespace std;
FILE *fi,*fo;
int n,i,k;
int A[1000000];
int x;
int main()
{
fi=fopen("elmaj.in","r");
fo=fopen("elmaj.out","w");
fscanf(fi,"%d%d",&n,&A[1]);
x=A[1];
k=1;
for(i=2; i<=n; i++)
{
fscanf(fi,"%d",&A[i]);
if(A[i]==x)
k++;
else
k--;
if(k==0)
{
x=A[i];
k++;
}
}
if(k==0)
{
fprintf(fo,"-1");
fclose(fi);
fclose(fo);
return 0;
}
k=0;
for(i=1; i<=n; i++)
if(A[i]==x)
k++;
if(k>n/2)
fprintf(fo,"%d %d",x,k);
else
fprintf(fo,"-1");
fclose(fi);
fclose(fo);
return 0;
}