Pagini recente » Cod sursa (job #2593917) | Cod sursa (job #557468) | Cod sursa (job #11371) | Cod sursa (job #2961798) | Cod sursa (job #1009934)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 3000000
int a[N];
int rand(int i,int j){return i+rand()%(j-i);}
int kth(int l,int r,int k){
if(l==r)return a[l];
int l1=l-1,r1=r+1,x=a[rand(l,r)];
while(1){
do{--r1;}while(a[r1]>x);
do{++l1;}while(a[l1]<x);
if(l1<r1) a[l1]^=a[r1]^=a[l1]^=a[r1];else break;
}
if(r1>=k) return kth(l,r1,k); return kth(r1+1,r,k);
}
int main(){
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
srand(time(NULL));
int n;
scanf("%i",&n);
fr(i,0,n)scanf("%i",a+i);
int k=kth(0,n-1,(n-1)/2);
int s=0;
fr(i,0,n)if(a[i]==k)++s;
if(s>=n/2)printf("%i %i",k,s);
else printf("-1");
return 0;
}