Cod sursa(job #2006617)

Utilizator trifangrobertRobert Trifan trifangrobert Data 30 iulie 2017 23:06:17
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.72 kb
#include <fstream>
#define INPUT_FILE "elmaj.in"
#define OUTPUT_FILE "elmaj.out"
#define DIMENSION 1000010

using namespace std;

int n, v[DIMENSION];
int x, k;

void Read()
{
	ifstream f(INPUT_FILE);
	f >> n;
	for (int i = 1;i <= n;i++)
		f >> v[i];
	f.close();
}

void Solve()
{
	k = 1;
	x = v[1];
	for (int i = 2;i <= n;i++)
	{
		if (x == v[i])
			k++;
		else
		{
			k--;
			if (k == 0)
			{
				x = v[i];
				k = 1;
			}
		}
	}
	k = 0;
	for (int i = 1;i <= n;i++)
		if (v[i] == x)
			k++;

}

void Write()
{
	ofstream g(OUTPUT_FILE);
	if (k < n / 2 + 1)
		g << -1 << "\n";
	else
		g << x << " " << k << "\n";
	g.close();
}

int main()
{
	Read();
	Solve();
	Write();
	return 0;
}