Pagini recente » Cod sursa (job #6073) | Cod sursa (job #1212520) | Cod sursa (job #974545) | Cod sursa (job #2797250) | Cod sursa (job #322980)
Cod sursa(job #322980)
#include <stdio.h>
#include <stdlib.h>
#define SMAX 500000
long v[SMAX], n, i, j, k, l, nr, nrmax;
long Q[10][SMAX];
long vf[10];
int main()
{
//freopen("algsort.in", "r", stdin);
//freopen("algsort.out", "w", stdout);
scanf("%ld", &n);
for(i = 0; i < n; ++i){
scanf("%ld", v+i);
nr = v[i];
j = 0;
while(nr){
nr /= 10;
j++;
}
if(j > nrmax)
nrmax = j;
}
for(i = 0; i <nrmax; ++i){
for(j=0;j<10;++j)
vf[j] = 0;
for(j=0;j<n;++j){
nr = v[j];
for(k=0;k<i;++k)
nr /= 10;
nr %= 10;
Q[nr][vf[nr]++] = v[j];
}
l = 0;
for(j=0;j<10;j++){
for(k=0;k<vf[j];++k)
v[l++] = Q[j][k];
}
}
for(i=0;i<n;++i)
printf("%ld ", v[i]);
return 0;
}