Cod sursa(job #650893)

Utilizator ChallengeMurtaza Alexandru Challenge Data 19 decembrie 2011 07:55:23
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>

using namespace std;

const char InFile[]="elmaj.in";
const char OutFile[]="elmaj.out";
const int MaxN=1000111;

ifstream fin(InFile);
ofstream fout(OutFile);

int N,v[MaxN],x,nr;

int main()
{
	fin>>N;
	for(register int i=0;i<N;++i)
	{
		fin>>v[i];
		if(nr==0)
		{
			x=v[i];
			nr=1;
		}
		if(v[i]==x)
		{
			++nr;
		}
		else
		{
			--nr;
		}
	}
	fin.close();
	
	nr=0;
	for(register int i=0;i<N;++i)
	{
		if(v[i]==x)
		{
			++nr;
		}
	}
	if(nr<(N/2)+1)
	{
		x=-1;
	}
	
	fout<<x<<" ";
	if(x>0)
	{
		fout<<nr;
	}
	fout.close();
	return 0;
}