Cod sursa(job #439657)

Utilizator catamihaCatalina Nita catamiha Data 11 aprilie 2010 18:08:16
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 1.15 kb
# include <stdlib.h>
# include <stdio.h>
int n;
int *hg, *g, *ridicari;
void merge (int p, int q, int r)
{int i=p, j=q, k=0;
int *y=(int*)malloc((r-p+1)*sizeof(int));
//printf ("%d ",p);
while (i<q&&j<=r)
    if(g[i]>g[j])
    { y[k++]=g[i++];  
    //printf ("%d\n",p);
    }
    else
    { y[k++]=g[j++]; //printf ("%d\n",p);
    }
while (i<q)
{  y[k++]=g[i++]; //printf ("%d\n",p);
}
while (j<=r)
    y[k++]=g[j++];
for (i=p;i<=r;i++)
    g[i]=y[i-p];
free(y);

}
void msort (int a, int b){
    int k;
    printf ("ACESTA ESTE I %d ", b);
    if (a<=b){  k=(a+b)/2;
             printf("%d ",k);
              msort(a,k-1);
              msort (k,b);
              merge (a,k,b);
    }
}



int main()
{ FILE *in,*out;
int h,u,i,nrg,j,min;

in=fopen("gutui.in","r");
out=fopen ("gutui.out","w");
fscanf (in,"%d",&n);
fscanf (in,"%d",&h);
fscanf (in,"%d",&u);
hg=(int*)calloc (n,sizeof (int));
g=(int*)calloc (n,sizeof (int));
ridicari=(int*)calloc (n,sizeof (int));
for (i=0;i<n;i++)
{ fscanf (in,"%d",&hg[i]);
  fscanf (in,"%d",&g[i]);
}
for (i=0;i<n;i++)
    printf ("%d ",g[i]);
printf("\n");
int a=0;
msort(a,(n-1));
for (i=0;i<n;i++)
    printf ("%d ",g[i]);

return 0;}