Pagini recente » Cod sursa (job #250203) | Cod sursa (job #790336) | Cod sursa (job #896022) | Cod sursa (job #1140016) | Cod sursa (job #515014)
Cod sursa(job #515014)
#include<stdio.h>
int l[505050],put[15],v[15],N,ver[505050];
void sort(int k)
{
if(k>=10)
return;
if(k>1)
put[k]=put[k-1]*10;
for(int i=0;i<=10;++i)
v[i]=0;
v[0]=1;
for(int i=1;i<=N;++i)
{
v[(l[i]/put[k])%10+1]++;
}
for(int i=1;i<=10;++i)
v[i]=v[i-1]+v[i];
for(int i=1;i<=N;++i)
{
ver[v[(l[i]/put[k])%10]]=l[i];
++v[(l[i]/put[k])%10];
}
for(int i=1;i<=N;++i)
l[i]=ver[i];
sort(k+1);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&N);
for(int i=1;i<=N;++i)
scanf("%d",&l[i]);
put[1]=1;
sort(1);
for(int i=1;i<=N;++i)
printf("%d ",l[i]);
}