Cod sursa(job #820234)

Utilizator taigi100Cazacu Robert taigi100 Data 20 noiembrie 2012 15:38:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
int a[1000005];
void majoritar( int n)
{
	int k=0, cand=-1;
	for(int i=1;i<=n;i++)
	{
		if(k==0)
		{
			cand=a[i];
			k=1;
		}
		else if(a[i]==cand)
			k++;
		else
			k--;
	}
	FILE *g=fopen("elmaj.out","w");
	if(cand<0)
		fprintf(g,"%d",cand);
	int nr=0;
	for(int i=1;i<=n;i++)
		if(cand==a[i])
			nr++;
    if(nr>(n/2))
		fprintf(g,"%d %d",cand,nr);
	else 
		fprintf(g,"-1");
}
int main()
{
	 FILE *f=fopen("elmaj.in","r");
	 int n;
	 fscanf(f,"%d",&n);
	 for(int i=1;i<=n;i++)
		 fscanf(f,"%d",a+i);
	 majoritar(n);
}