Pagini recente » Diferente pentru problema/sg1 intre reviziile 9 si 8 | Diferente pentru utilizator/loo_k01 intre reviziile 65 si 62 | Monitorul de evaluare | Cod sursa (job #880881) | Cod sursa (job #1061556)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
#define MOD 666019
#define NMAX 1000001
int i, N;
int maxAp, value;
int v[NMAX];
struct nod {
int val;
int ap;
nod *next;
};
nod *H[MOD + 3];
void add(int x) {
nod *p = new nod;
p->val = x;
p->ap = 1;
p->next = H[x % MOD];
H[x % MOD] = p;
}
int Search_Hash(int x) {
for (nod *it = H[x]; it; it = it->next)
if (it->val == v[i]){++it->ap; return it->ap;}
return 0;
}
int main() {
fin >> N;
for (i = 1; i <= N; ++i) {
fin >> v[i];
int cnt = Search_Hash(v[i] % MOD);
if (!cnt)
add(v[i]);
else
if (cnt > maxAp) maxAp = cnt, value = v[i];
}
if (maxAp >= N / 2 + 1) fout << value << ' ' << maxAp << '\n';
else
fout << -1 << '\n';
return 0;
}