Pagini recente » Cod sursa (job #2298128) | Cod sursa (job #2904126) | Cod sursa (job #589317) | Cod sursa (job #602220) | Cod sursa (job #658648)
Cod sursa(job #658648)
#include<cstdio>
#include<vector>
#define M 719671
using namespace std;
struct numar { int valuare, aparitii; };
int n, nrMaj, aparitieMaj;
vector <numar> H[M];
int main() {
int i, j, x, ind;
bool insert;
freopen("elmaj.in", "r", stdin), freopen("elmaj.out", "w", stdout);
scanf("%d", &n);
nrMaj = 0;
aparitieMaj = 1;
for(i = 1; i <= n; i++) {
scanf("%d", &x);
ind = x % M;
insert = true;
// caut numarul in hash
for(j = 0; j < (int) H[ind].size(); j++)
if(H[ind][j].valuare == x) {
H[ind][j].aparitii++; // incrementez numarul sau de aparitii
if(H[ind][j].aparitii > aparitieMaj) {
aparitieMaj = H[ind][j].aparitii;
nrMaj = H[ind][j].valuare;
}
insert = false;
break;
}
// inserez numarul in hash daca nu a fost gasit
if(insert) H[ind].push_back( (numar){x, 1} );
}
if(aparitieMaj == 1) nrMaj = x;
if(aparitieMaj >= n / 2 + 1) printf("%d %d\n", nrMaj, aparitieMaj);
else printf("-1\n");
return 0;
}