Cod sursa(job #634521)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 16 noiembrie 2011 16:57:51
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;
int n,v[1000010];
int main()
{
	int i,x,nr;
	ifstream fin("elmaj.in");
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>v[i];
	fin.close();
	
	x=v[1];
	nr=1;
	for(i=2;i<=n;i++)
	{
		if(v[i]==x)
			nr++;
		else
			nr--;
		if(nr<0)
		{
			x=v[i];
			nr=1;
		}
	}
	
	nr=0;
	for(i=1;i<=n;i++)
	{
		if(v[i]==x)
			nr++;
	}
	
	ofstream fout("elmaj.out");
	if(nr>=n/2+1)
		fout<<x<<' '<<nr<<"\n";
	else
		fout<<"-1\n";
	fout.close();
	return 0;
}