Pagini recente » Cod sursa (job #1504782) | Cod sursa (job #1825028) | Cod sursa (job #1955906) | Cod sursa (job #3213851) | Cod sursa (job #2223068)
#include <iostream>
#include <cstdio>
#include <map>
#include <vector>
#define BIGPRIMENUMBER 138257
using namespace std;
int n;
struct INT
{
int number;
int frequency;
INT(int _n, int _f)
{
number = _n;
frequency = _f;
}
};
class Hash
{
vector<INT> lists[BIGPRIMENUMBER];
int maxFrequency;
int maxNumber;
public:
Hash()
{
maxFrequency = 0;
maxNumber = 0;
}
bool search(int x, int &i)
{
int indice = x % BIGPRIMENUMBER;
for(i = 0; i < lists[indice].size(); ++i)
{
if(lists[indice][i].number == x)
return true;
}
return false;
}
bool search(int x)
{
int indice = x % BIGPRIMENUMBER;
for(int i = 0; i < lists[indice].size(); ++i)
{
if(lists[indice][i].number == x)
return true;
}
return false;
}
void insert(int x)
{
int indiceInList;
int indice = x % BIGPRIMENUMBER;
if(!search(x, indiceInList))
{
lists[indice].push_back(INT(x, 1));
}
else
{
++lists[indice][indiceInList].frequency;
if(maxFrequency < lists[indice][indiceInList].frequency)
{
maxFrequency = lists[indice][indiceInList].frequency;
maxNumber = x;
}
}
}
void afisare()
{
if(maxFrequency >= n / 2 + 1)
printf("%d %d", maxNumber, maxFrequency);
else
printf("-1");
}
}contor;
int main()
{
freopen("elmaj.in", "r", stdin);
freopen("elmaj.out", "w", stdout);
int maximum = 0;
scanf("%d", &n);
for(int i = 0; i < n; ++i)
{
int a;
scanf("%d", &a);
contor.insert(a);
}
contor.afisare();
return 0;
}