Cod sursa(job #763449)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 2 iulie 2012 11:51:49
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

int main()
{
	ifstream fin("elmaj.in");
	ofstream fout("elmaj.out");
	
	unsigned short int v[1000001];
	int n;
	
	fin>>n;
	
	fin>>v[0];
	int candidat=v[0];
	int aliati=1;
	
	for(register int i=1;i<n;i++)
	{
		fin>>v[i];
		if(v[i]==candidat)
		{
			aliati++;
		}
		else
		{
		    aliati--;
		}
		
		if(aliati==0)
		{
		   candidat=v[i];
		   aliati=1;
		}
	}
	
	int aparitii=0;
	
	for(register int i=0;i<n;i++)
	{
		if(v[i]==candidat)aparitii++;
	}
	
	if(aparitii>=(n/2+1))
		fout<<candidat<<' '<<aparitii<<endl;
	else
		fout<<"-1"<<endl;
	
	return 0;
}