Cod sursa(job #2460885)

Utilizator raul.licaretRaul Licaret raul.licaret Data 24 septembrie 2019 17:26:45
Problema Elementul majoritar Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <map>
#include <iterator>

using namespace std;

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

int main()
{
	int N, val, maj = -1, nrAp = 0;
	map<int, int> intMap;

	fin >> N;

	for (int i = 0; i < N; i++)
	{
		fin >> val;
		
		if (intMap.count(val))
		{
			auto itr = intMap.find(val);
			itr->second++;
		}
		else
			intMap.insert(pair<int, int>(val, 1));
	}

	map<int, int>::iterator itr;
	for (itr = intMap.begin(); itr != intMap.end(); itr++)
	{
		//gout << itr->first << " " << itr->second << '\n';

		if (itr->second >= (N / 2) + 1)
		{
			nrAp = itr->second;
			maj = itr->first;
			break;
		}
	}

	if (maj != -1)
		gout << maj << " " << nrAp;
	else
		gout << -1;

	return 0;
}