Cod sursa(job #882396)

Utilizator mircea.dobreanuMircea Dobreanu mircea.dobreanu Data 19 februarie 2013 07:56:41
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
using namespace std;
const int MAXN=1000001;

int n,v[MAXN],ok=1,elem,i,maj;
void citire()
{

	ifstream fin("elmaj.in");
	fin>>n;
	for (i=0;i<n;i++)
		fin>>v[i];
	fin.close();
}
void vot()
{
	for (i=0;i<n;i++)
	{
		if (maj==0)
		{
			elem=v[i];
			maj=1;
		}
		else if (v[i]==elem)
			maj++;
		else
			maj--;
	}
	if (maj>0)
		for (maj=0,i=0;i<n;i++)
			if (v[i]==elem)
				maj++;

}
void afisare()
{
	ofstream fout("elmaj.out");
	if (maj>=n/2+1)
		fout<<elem<<' '<<maj;
	else
		fout<<-1;
	fout.close();
}
int main()
{
	citire();
	vot();
	afisare();
	return 0;
}