Pagini recente » Cod sursa (job #253151) | Cod sursa (job #1117021) | Cod sursa (job #1105683) | Cod sursa (job #964976) | Cod sursa (job #1020921)
#include <cstdio>
#include <cstdlib>
#define Nmax 1000005
#define baza 10000
using namespace std;
int a[Nmax],n,m,b[Nmax];
int bucket[baza];
void radixsort(int n)
{
int exp = 1;
while (m / exp > 0)
{
for(register int i=0;i<baza;i++) bucket[i]=0;
for(register int i = 0; i < n; i++)
bucket[ (a[i] / exp) % baza]++;
for (int i = 1; i < baza; i++)
bucket[i] += bucket[i - 1];
for (int i = n - 1; i >= 0; i--)
b[ --bucket [(a[i] / exp) % baza]] = a[i] ;
for (int i = 0; i < n; i++) a[i] = b[i];
exp *= baza;
}
}
int main()
{ freopen("elmaj.in","rt",stdin);
freopen("elmaj.out","wt",stdout);
scanf("%d", &n);
for (int i = 0; i < n; i++)
{scanf("%d", &a[i]);
m=(a[i]>m) ? a[i] : m;
}
radixsort(n);
int k=1,t; m=0;
for(int i=0;i<n;i++)
if(a[i]==a[i+1]) k++;
else {if(m<k) {m=k; t=a[i];} k=1;}
if(m > n/2) printf("%d %d\n",t,m);
else printf("-1\n");
return 0;
}