Cod sursa(job #1284815)
Utilizator | Data | 6 decembrie 2014 20:32:52 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
#include<stdlib.h>
int main()
{
int i,*a,k,ex;
long int n;
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,"%ld",&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)
{
fprintf(g,"%d %d ",ex,k);
}
else
{
fprintf(g,"-1");
}
free(a);
}