Cod sursa(job #700462)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 1 martie 2012 10:29:00
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
using namespace std;

ifstream fi ("elmaj.in");
ofstream fo ("elmaj.out");

int N, k, maj, A[1000005];

int main ()
{
	fi >> N;
	for (int i = 1; i <= N; i++)
	{
		fi >> A[i];
		if (k == 0)
		{
			maj = A[i];
			k = 1;
		}
		else if (A[i] == maj)
			k++;
		else
			k--;	
	}
	
	k = 0;
	for (int i = 1; i <= N; i++)
		if (A[i] == maj)
			k++;
	
	if (k >= N/2+1)
		fo << maj << ' ' << k << '\n';
	else
		fo << "-1\n";
	return 0;
}