Cod sursa(job #2432613)

Utilizator ShayTeodor Matei Shay Data 24 iunie 2019 14:39:46
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <unordered_map>
#include <assert.h>

std::pair<int, int> hashMaj(int &n, int v[]) {
	std::unordered_map<int, int> map;

	for (int i = 0 ; i < n ; ++i) {
		++map[v[i]];
	}

	for (int i = 0 ; i < n ; ++i) {
		if (map.find(v[i])->second > n / 2) {
			return std::make_pair(v[i], map.find(v[i])->second);
		}
	}

	return std::make_pair(-1, -1);
}

int main() {
	std::ifstream cin("elmaj.in");
	std::ofstream cout("elmaj.out");
	std::ios::sync_with_stdio(false);
	int n;
	cin >> n;
	assert(1 <= n && n <= 1000000);
	int v[n];
	
	for (int i = 0 ; i < n ; ++i) {
		cin >> v[i];
	}

	std::pair<int, int> p = hashMaj(n, v);

	cout << p.first << " " << p.second << '\n';

	return 0;
}