Pagini recente » Cod sursa (job #694653) | Cod sursa (job #6203) | Cod sursa (job #1034594) | Cod sursa (job #1374529) | Cod sursa (job #336406)
Cod sursa(job #336406)
#include<stdio.h>
#define F(i,a,b) for(i=a;i<=b;i++)
#define N 500010
int v[N],n;
void citire()
{
int i;
scanf(" %d ", &n);
F(i,1,n)
scanf(" %d ", &v[i]);
}
int pozitie(int i,int j)
{
int ii=0,jj=-1,aux;
while(i<j)
{
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
aux=-ii;
ii=-jj;
jj=aux;
}
i+=ii;
j+=jj;
}
return i;
}
void quick(int i,int j)
{int k;
if(i<j)
{
k=pozitie(i,j);
quick(i,k-1);
quick(k+1,j);
}
}
void afisare()
{
int i;
F(i,1,n)
printf("%d ",v[i]);
}
int main()
{
freopen("quick.in" ,"r" ,stdin);
freopen("quick.out" ,"w" ,stdout);
citire();
quick(1,n);
afisare();
return 0;
}