Pagini recente » Cod sursa (job #2712541) | Cod sursa (job #1529002) | Cod sursa (job #2490993) | Cod sursa (job #2329935) | Cod sursa (job #322988)
Cod sursa(job #322988)
#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 && nr;++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;
}