Cod sursa(job #1147432)

Utilizator SilverGSilver Gains SilverG Data 19 martie 2014 20:39:53
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
/*
    Keep It Simple!
*/

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include<stdio.h>
#define MaxN 1000005

int N;
int v[MaxN];

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]);

	int cnt = 0, voluntar = -1;

	for (int i = 1; i <= N; i++)
	{
		if (cnt == 0)
		{
			cnt = 1;
			voluntar = v[i];
		}
		else if (v[i] == voluntar) cnt++;
		else cnt--;
	}
	cnt = 0;
	for (int i = 1; i <= N; i++)
	if (voluntar == v[i]) cnt++;

	if (cnt >= N / 2)
	{
		printf("%d %d", voluntar, cnt);
	}
	else
		printf("-1");

	return 0;
}