Cod sursa(job #2329496)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 26 ianuarie 2019 20:32:05
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

#define input "elmaj.in"
#define output "elmaj.out"
#define NMAX 1000005

using namespace std;

ifstream in(input);
ofstream out(output);

int sir[NMAX], N;

void Read_Data()
{
	in >> N;
	for (int i = 1; i <= N; i++)
		in >> sir[i];
}

void Solve()
{
	int candidat = -1, k = 0;
	for (int i = 1; i <= N; i++)
	{
		if (k == 0)
			candidat = sir[i], k = 1;
		else if (sir[i] == candidat)
			k++;
		else  k--;
	}
	if (candidat < 0)
	{
		out << candidat << "\n";
		return;
	}
	int counter = 0;
	for (int i = 1; i <= N; i++)
	if (sir[i] == candidat)
		counter++;
	if (counter > N / 2)
		out << candidat << " " << counter << "\n";
	else
		out << "-1\n";
}

int main()
{
	Read_Data();
	Solve();
	return 0;
}