Cod sursa(job #1284798)
Utilizator | Data | 6 decembrie 2014 20:18:08 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
#include<stdlib.h>
main()
{
int i,n,*a,k,ex;
FILE *f,*g;
f=fopen("elmaj.in","r");
g=fopen("elmaj.out","w");
fscanf(f,"%d",&n);
a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
fscanf(f,"%d",&a[i]);
}
ex=a[0];
k=0;
for(i=1;i<n;i++)
{
if(k==0)
{
ex=a[i];
k=0;
}
if(a[i]==ex)
{
k++;
}
else
{
k--;
}
}
k=0;
for(i=0;i<n;i++)
{
if(a[i]==ex)
{
k++;
}
}
if(k>=n/2+1)
{
fprintf(g,"%d %d ",ex,k);
}
else
{
fprintf(g,"-1");
}
free(a);
}