Cod sursa(job #646143)

Utilizator ELHoriaHoria Cretescu ELHoria Data 10 decembrie 2011 22:38:00
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int v[1000001] , N;

void solve()
{
	int k = 0 , cand = -1 , nr = 0;
	for(int i = 0;i<N;++i)
		if(!k)
			cand = v[i] , k = 1;
		else
			k += ( v[i] == cand ? 1 : -1);

	for(int i = 0;i<N;++i)
		nr+= v[i] == cand;
	if(nr > N/2)
		fout<<cand<<" "<<nr<<'\n';
	else
		fout<<-1<<'\n';
}

int main()
{
	fin>>N;
	for(int i = 0;i<N;++i)
		fin>>v[i];

	solve();
	return 0;
}