Cod sursa(job #1044280)

Utilizator roby2001Sirius roby2001 Data 29 noiembrie 2013 16:13:02
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
/*
    Keep It Simple!
*/
#include<stdio.h>

	int n,cand = -1,k = 0,v[1000069],nr;

int main()
{
	freopen("elmaj.in","r",stdin);
	freopen("elmaj.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&v[i]);
	
	for(int i=1;i<=n;i++)
	{
		if(k == 0)
		{
			cand = v[i];
			k=1;
		}
		if( v[i] == cand )
			k++;
		else
			k--;
	}
	
	if(cand > 0 )
	{
		for(int i=1;i<=n;i++)
			if ( v[i] == cand )
				nr++;
	}
	if( nr > n/2 )
		printf("%d",cand);
	else
		printf("-1");
}