Pagini recente » Cod sursa (job #840929) | Cod sursa (job #2016482) | Cod sursa (job #2482940) | Cod sursa (job #419218) | Cod sursa (job #750749)
Cod sursa(job #750749)
#include<cstdio>
#include<deque>
#include<algorithm>
#include<cmath>
using namespace std;
int a[500010],n,i,MAX,nr,t;
deque<int> b[15];
int nrcif(int x)
{
int cop=x,nr=0;
while (cop!=0)
{
nr++;
cop/=10;
}
return nr;
}
void fill(int t)
{
int i,c;
for (i=1;i<=n;i++)
{
c=a[i]/t%10;
b[c].push_back(a[i]);
}
}
void swap()
{
int k=1,i,j,x;
for (i=0;i<=9;i++)
{
x=b[i].size();
if (b[i].size()!=0)
for (j=0;j<=x-1;j++)
{
a[k]=b[i][j];
k++;
}
b[i].clear();
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
MAX=0;
for (i=1;i<=n;i++)
{
nr=nrcif(a[i]);
MAX=max(nr,MAX);
}
t=1;
for (i=1;i<=MAX;i++)
{
fill(t);
swap();
t*=10;
}
for (i=1;i<=n;i++)
printf("%d ",a[i]);
fclose(stdin);
fclose(stdout);
return 0;
}