Cod sursa(job #703695)

Utilizator DanFodorFODOR Dan Horatiu DanFodor Data 2 martie 2012 13:45:43
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <time.h>
#include <algorithm>

using namespace std;

int v[1000069];

int main()
{
	ifstream in("elmaj.in");
	ofstream out("elmaj.out");
	int n,i,elmaj,nmax,elnou,nrnou;
	in>>n;
	for (i=1;i<=n;i++)
		in>>v[i];
	sort(v+1,v+n+1);
	elmaj=v[1];
	nmax=1;
	elnou=v[1];
	nrnou=1;
	for (i=2;i<=n;i++)
	{
		if (nmax<nrnou)
		{
			nmax=nrnou;
			elmaj=elnou;
		}
		if (elnou==v[i])
			nrnou++;
		else
		{
			if (nmax<nrnou)
			{
				nmax=nrnou;
				elmaj=elnou;
			}
			elnou=v[i];
			nrnou=1;
		}
	}
	if (nmax>=n/2+1)
	out<<elmaj<<" "<<nmax;
	else
		out<<-1;
	cout<<(double)clock()/CLOCKS_PER_SEC;
	return 0;
}