Cod sursa(job #2554922)

Utilizator MarcGrecMarc Grec MarcGrec Data 23 februarie 2020 15:15:13
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#define MAX_N 1000000

#include <fstream>
using namespace std;

ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

int n, A[MAX_N + 1];

int main()
{
	fin >> n;
	int cand = 0, k = 0;
	for (int i = 1; i <= n; ++i)
	{
		fin >> A[i];
		if (k == 0)
		{
			cand = A[i];
			k = 1;
		}
		else
		{
			k += (A[i] == cand) ? 1 : -1;
		}
	}
	
	if (k == 0)
	{
		fout << "-1";
	}
	else
	{
		int nrap = 0;
		for (int i = 1; i <= n; ++i)
		{
			if (A[i] == cand)
			{
				++nrap;
			}
		}
		
		if (nrap > (n / 2))
		{
			fout << cand << ' ' << nrap;
		}
		else
		{
			fout << "-1";
		}
	}
	
	fin.close();
	fout.close();
	return 0;
}