Pagini recente » Cod sursa (job #2522419) | Cod sursa (job #2437532) | Cod sursa (job #1356571) | Cod sursa (job #1554576) | Cod sursa (job #1996244)
#include <bits/stdc++.h>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
const int NMax = 1e6 + 5;
// solutie probabilistica
int N;
int v[NMax];
unordered_map<int,int> mp;
// mp - tabel hash
// mp[val] = retine de cate ori apare valoare val in vectorul initial
int main() {
in>>N;
for (int i=1;i <= N;++i) {
in>>v[i];
++mp[v[i]];
}
// se genereaza 10 elemente random din vector si se
// testeaza calitatea lor de element majoritar.
// Probabilitatea ca acest algoritm sa esueze este foarte mica
srand(time(0));
for (int i=0;i < 10;++i) {
int idx = rand() % N;
if (mp[v[idx]] > N/2) {
out<<v[idx]<<' '<<mp[v[idx]]<<'\n';
return 0;
}
}
out<<"-1\n";
in.close();out.close();
return 0;
}