Cod sursa(job #1664974)

Utilizator medicinedoctoralexandru medicinedoctor Data 26 martie 2016 15:16:12
Problema Elementul majoritar Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;

long long n,p=0,a[1000000],q[1000000],e;

long long co()
{
	for (long long i=1; i<=n; i++)
		if (q[i]!=0) { return q[i]; break; }
}

long long nn()
{
	long long w=0;
	for (long long i=1; i<=n; i++)
		if (a[i]==e) w++;
	return w;
}

void elmaj()
{
	for (long long i=1; i<=n; i++)
	{
		if (p==0) { p=1; q[1]=a[i]; } else
		{
			int x=1;
			for (long long j=p; j>=1; j--)
				if (a[i]!=q[j]) { x=0; q[j]=0; p=p-1; break; }
			if (x==1) { p=p+1; q[p]=a[i]; }
		}
	}
}

int main()
{
	ifstream fi("elmaj.in");
	fi >> n;
	for (long long i=1; i<=n; i++)
		fi >> a[i];
	elmaj();
	e=co();
	ofstream f("elmaj.out");
	if (e!=0) f << e << ' ' << nn(); else f << -1;
	return 0;
}