Pagini recente » Istoria paginii utilizator/kiddu_girl | Cod sursa (job #2193847) | Cod sursa (job #650721) | Istoria paginii utilizator/kiddu_girl | Cod sursa (job #974185)
Cod sursa(job #974185)
#include<stdio.h>
FILE * Fin=fopen("elmaj.in","r"), *Fout=fopen("elmaj.out","w");
void quicksort( int a[], int stanga, int dreapta );
void insertion( int a[] , int n )
{
int i,j,aux;
for(i=1;i<n;++i)
{
j=i;
while(a[j] < a[j-1] && j>0)
{
aux=a[j];
a[j]=a[j-1];
a[j-1]=aux;
j--;
}
}
}
int a[1000001];
int main ()
{
int c1=0,y,x,n,i,max,c=0;
fscanf(Fin,"%d",&n);
for(i=0;i<n;++i)
fscanf(Fin,"%d",&a[i]);
//insertion (a,n);//
quicksort(a,0,n-1);
max=n/2+1;
x=a[0];c=1;
for(i=1;i<n;++i)
{
if(a[i]==x)
c++;
else
{
x=a[i];
c=1;
}
if(c>=max)
{
y=x;
c1=c;
}
}
if(c1<max)
fprintf(Fout,"-1");
else
fprintf(Fout,"%d %d",y,c1);
fclose(Fin); fclose(Fout);
return 0;
}
void quicksort( int a[], int stanga, int dreapta )
{
int i=stanga , j=dreapta ;
int aux;
int pivot=a[(stanga+dreapta)/2];
while(i<=j)
{
while(a[i]<pivot)
++i;
while(a[j]>pivot)
--j;
if(i<=j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
i++;
j--;
}
}
if(stanga<j)
quicksort(a,stanga, j);
if(dreapta>i)
quicksort(a,i,dreapta);
}