Cod sursa(job #709543)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 8 martie 2012 11:16:01
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<fstream>
#define dim 1000002
using namespace std;

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

int v[dim],k,cand,i,j,ap,n;

int main (){
	f>>n;
	
	
	for(i=1; i<=n;i++)
		f>>v[i];
	
	k=0;
	cand =-1;
	for(i=1;i<=n;i++){
		
		if(k==0)
			cand=v[i];
		else
			if(cand==v[i])
				k++;
			else
				k--;
		
		
	}
	if(cand<0)
		return cand;
	else{
		for(i=1;i<=n;i++)
			
			if(v[i]==cand)
				ap++;
		
		if(ap>n/2)
			g<<cand<<" "<<ap<<"\n";
		else
			g<<-1;
	}
	return 0;
}