Cod sursa(job #1075086)

Utilizator GaborGabrielFMI - GabrielG GaborGabriel Data 8 ianuarie 2014 16:44:29
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.58 kb
#include <fstream>
using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

#define MAXN 1000005
int a[MAXN], N;

int main()
{
	// Local
	int i, cand = -1, k = 0;

	f >> N;
	for (i = 1; i <= N; ++i)
		f >> a[i];

	for (i = 1; i <= N; ++i)
	{
		if (k == 0) {
			cand = a[i];
			k = 1;
		}
		else if (a[i] == cand) {
			k++;
		}
		else
			k--;
	}

	if (cand < 0)
		g << -1 << '\n';

	int nr = 0;
	for (int i = 1; i <= N; ++i) {
		if (a[i] == cand)
			nr++;
	}

	if (nr > N / 2)
		g << cand << ' ' << nr;
	else
		g << -1;

	return 0;
}