Cod sursa(job #664598)

Utilizator bodyionitaIonita Bogdan Constantin bodyionita Data 20 ianuarie 2012 14:45:34
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <cstdio>
using namespace std;
int nr,i,n,x,a[1000010],nr1;
int main()
{
	freopen("elmaj.in","r",stdin);
	freopen("elmaj.out","w",stdout);
	scanf("%d\n",&n);
	for (i=1; i<=n; i++)
		scanf("%d\n",&a[i]);
	x=a[1]; nr=1;
	for (i=2; i<=n; ++i)
	{
		if (a[i]==x) nr++;
		else
			nr--;
		if (nr==-1) {x=a[i]; nr=1;}
	}
	if (nr>0)
	{
		nr1=0;
		for (i=1; i<=n; i++)
			if (a[i]==x) nr1++;
		if (nr1>=(n/2)+1) printf("%d %d\n",x,nr1);
			else
				printf("-1\n");
	}
	else
	printf("-1\n");
	return 0;
}