Pagini recente » Cod sursa (job #2376974) | Cod sursa (job #128157) | Cod sursa (job #717483) | Cod sursa (job #2190330) | Cod sursa (job #1452806)
#include <iostream>
#include <fstream>
#include <map>
#include <assert.h>
const char IN[] = "elmaj.in", OUT[] = "elmaj.out";
using namespace std;
map<int, int> hash_map;
int N;
inline void read_data() {
int elMaj, elMajAp = -1;
assert(freopen(IN, "r", stdin));
assert(scanf("%d", &N));
for (int i = 0; i < N; ++i) {
int x;
assert(scanf("%d", &x));
if (elMajAp != -1) {
//a fost deja gasit
if (x == elMaj) {
++elMajAp;
continue;
}
}
std::map<int,int>::iterator it = hash_map.find(x);
if (it == hash_map.end()) hash_map.emplace(x, 1);
else {
++it->second;
if (it->second >= N / 2 + 1) {
elMaj = it->first;
elMajAp = it->second;
}
}
}
fclose(stdin);
if (elMajAp == -1) {
fprintf(fopen(OUT, "w"), "-1\n");
}
else {
assert(fprintf(fopen(OUT, "w"), "%d %d\n", elMaj, elMajAp));
}
}
int main() {
read_data();
return 0;
}