Pagini recente » Cod sursa (job #2132819) | Cod sursa (job #2509975) | Cod sursa (job #2781606) | Cod sursa (job #1840276) | Cod sursa (job #829587)
Cod sursa(job #829587)
#include <iostream>
#include <stdio.h>
FILE *fi,*fo;
long i,n,k,nr=0,a[1000010];
void readData(){
fscanf(fi,"%ld",&n);
k=n/2;
for (i=1; i<=n; i++) fscanf(fi,"%ld",&a[i]);
}
void q(long l, long r){
long i=l,j=r,p=a[(i+j)/2],aux;
while (i<j){
while (a[i]<p) i++;
while (a[j]>p) j--;
if (i<=j) { aux=a[i]; a[i]=a[j]; a[j]=aux; i++; j--; }
}
if ((j>l)&&(k<=j)) q(l,j); else if (i<r) q(i,r);
}
void writeData(){
for (i=1; i<=n; i++) if (a[i]==a[k]) nr++;
if (nr>k) fprintf(fo,"%ld %ld",a[k],nr); else fprintf(fo,"-1");
}
int main()
{
fi=fopen("elmaj.in","r");
fo=fopen("elmaj.out","w");
readData();
q(1,n);
writeData();
fclose(fi); fclose(fo); return 0;
}