Pagini recente » Cod sursa (job #2885304) | Cod sursa (job #1509037) | Cod sursa (job #636986) | Cod sursa (job #2836961) | Cod sursa (job #726630)
Cod sursa(job #726630)
#include<cstdio>
using namespace std;
int i, z, n, a[500010], b[500010], v[12];
bool ok;
int main(){ //algsort
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;
} if (ok==false) break;
for (i=1;i<=9;i++) v[i]+=v[i-1];
for (i=1;i<=n;i++) {
b[++v[a[i]/z%10-1]]=a[i];
}
for (i=1;i<=n;i++) a[i]=b[i];
z=z*10;
if (v[0]==n) ok=false;
}
for (i=1;i<=n;i++) printf("%d ", a[i]);
printf("\n");
return 0;
}