Cod sursa(job #732437)

Utilizator danalex97Dan H Alexandru danalex97 Data 10 aprilie 2012 14:41:42
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
using namespace std;

#define Nmax 1000011
int A[Nmax],N;

void read()
{
	freopen("elmaj.in","r",stdin);
	scanf("%d",&N);
	for (int i=1;i<=N;++i)
		scanf("%d",&A[i]);
}

void solve()
{
	int k=1,cand=A[N];
	for (int i=1;i<N;++i)
	{
		k=( A[i]==cand )? k+1 : k-1;
		if ( k==-1 ) k=1,cand=A[i];
	}
	
	freopen("elmaj.out","r",stdout);
	if ( k<=0 )
	{	printf("-1\n"); return; }
	
	k=( A[N]==cand )?1:0;
	for (int i=1;i<N;++i)
		k=( A[i]==cand )?k+1:k;
	
	if ( k< N/2+1 )
	{	printf("-1\n"); return; }
	
	printf("%d %d\n",cand,k);
}

int main()
{
	read();
	solve();
	return 0;
}