Pagini recente » Cod sursa (job #1073341) | Cod sursa (job #1421108) | Cod sursa (job #1134855) | Cod sursa (job #3221033) | Cod sursa (job #650769)
Cod sursa(job #650769)
#include<stdio.h>
void QSort(int a[],int st,int dr)
{
int temp,min,max,mijl;
mijl = a[st+(dr-st)/2];
min = st; max = dr;
do
{
while(a[min] < mijl)
min++;
while(a[max] > mijl)
max--;
if(min <= max)
{
temp = a[min];
a[min++] = a[max];
a[max--] = temp;
}
}while(min <= max);
if(st < max) QSort(a,st,max);
if(dr > min) QSort(a,min,dr);
}
int main()
{
int i,n,k,nr, a[1000000];
FILE *f,*g;
f=fopen("elmaj.in","r");
g=fopen("elmaj.out","w");
fscanf(f,"%d",&n);
for(i=0;i<n;i++)
fscanf(f,"%d",&a[i]);
QSort(a,0,n-1);
k=n/2;i=k-1;nr=1;
while(i>=0 && a[i]==a[k])
{
i--;
nr++;
}
i=k+1;
while(i<n && a[i]==a[k])
{
i++;
nr++;
}
if (nr>=n/2+1)
fprintf(g,"%d %d",a[k],nr);
else
fprintf(g,"-1");
fclose(f);
fclose(g);
return 0;
}