Cod sursa(job #2460890)

Utilizator raul.licaretRaul Licaret raul.licaret Data 24 septembrie 2019 17:32:29
Problema Elementul majoritar Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 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, find = 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++;

			if (itr->second >= (N / 2) + 1)
			{
				nrAp = itr->second;
				maj = itr->first;
				find = 1;
			}
		}
		else
			intMap.insert(pair<int, int>(val, 1));
	}

	/*if (!find)
	{
		for (auto itr = intMap.begin(); itr != intMap.end(); itr++)
		{
			if (itr->second >= (N / 2) + 1)
			{
				nrAp = itr->second;
				maj = itr->first;
			}
		}
	}*/

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

	return 0;
}