Pagini recente » Cod sursa (job #842575) | Cod sursa (job #839809) | Cod sursa (job #2634453) | Cod sursa (job #1321394) | Cod sursa (job #726393)
Cod sursa(job #726393)
#include<cstdio>
using namespace std;
int i, z, n, a[500010], b[500010], v[12];
bool ok;
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d", &n); z=1;
for (i=1;i<=n;i++) scanf("%d", &a[i]); ok=true;
while (ok==true) { ok=false;
for (i=0;i<=9;i++) v[i]=0;
for (i=1;i<=n;i++) {
v[a[i]/z%10]++;
if (i/z%10!=0) ok=true;
}
for (i=1;i<=9;i++) v[i]+=v[i-1];
for (i=1;i<=n;i++) {
b[v[a[i]/z%10-1]+1]=a[i];
v[a[i]/z%10-1]++;
}
for (i=1;i<=n;i++) a[i]=b[i];
z=z*10;
}
for (i=1;i<=n;i++)
printf("%d ", a[i]);
return 0;
}