Pagini recente » Cod sursa (job #2573524) | Cod sursa (job #25868) | Cod sursa (job #2806545) | Cod sursa (job #1084832) | Cod sursa (job #712686)
Cod sursa(job #712686)
#include<cstdio>
#include<cstring>
using namespace std;
int x,j,mx,n,p,A[500011],B[500011],*h,*b, *a, i,cif,c[11];
void rad (int cif)
{
for (i=1;i<=cif;i++)
{
memset(c,0,sizeof(c));
for (j=1;j<=n;j++)
{
c[a[j]/p%10+1]++;
}
c[0]=0;
for (j=1;j<=10;j++)
{
c[j]+=c[j-1];
}
for (j=1;j<=n;j++)
{
b[c[a[j]/p%10]+1]=a[j];
c[a[j]/p%10]++;
}
//for (j=1;j<=n;j++)
// a[j]=b[j];
h = a;
a = b;
b = h;
p*=10;
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
a = A;
b = B;
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if (a[i]>mx)
mx=a[i];
}
x=0;
while (mx>0)
{
x++;
mx/=10;
}
p=1;
rad(x);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
}