Pagini recente » Cod sursa (job #2402361) | Cod sursa (job #52560) | Cod sursa (job #2375823) | Cod sursa (job #1212182) | Cod sursa (job #2211610)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("1.in");
ofstream g("1.out");
long long n;
int c;
int i,nr;
int a[12];
void mergest(long long a[],int start, int endd)
{
int d[endd-start+2];
int mid=(start+endd)/2;
int i=start,j=mid+1;
int k=1;
while(i<=mid && j<=endd)
{
if(a[i]<a[j])
d[k++]=a[i++];
else if(a[j]<a[i])
d[k++]=a[j++];
else
d[k++]=a[i++],d[k++]=a[j++];
}
while(i<=mid)
d[k++]=a[i++];
while(j<=endd)
d[k++]=a[j++];
int p=1;
for(i=start;i<=endd;i++)
a[i]=d[p++];
return;
}
void apelrec(long long a[],int s,int e)
{
if(s==e)
return;
int m=(s+e)/2;
apelrec(a,s,m);
apelrec(a,m+1,e);
mergest(a,s,e);
}
int main()
{
long n;
f>>n;
long long a[100009],i;
for(i=1;i<=n;i++)
f>>a[i];
apelrec(a,1,n);
for(i=1;i<=n;i++)
if(a[i] == a[n/2])
nr++;
if(nr >= (n/2)+1)
g<<a[n/2]<<" "<<nr;
else
g<<-1;
}