Pagini recente » Cod sursa (job #2187712) | Cod sursa (job #1922057) | Cod sursa (job #1719491) | Cod sursa (job #1749681) | Cod sursa (job #1080831)
#include <cstdio>
#include <queue>
#define N 500000
using namespace std;
unsigned int n;
long long int v[N];
queue <long long int> q[10];
int getdigit(long long int x,int digit)
{
return digit;
}
void lsd()
{
int k=1;
bool run=1;
int i,x;
while(run)
{
run=0;
i=0;
while(i<n)
{
x=v[i++];
q[ (x/k)%10 ].push(x);
}
k*=10;
int pos=0;
for(i=0;i<10;++i)
{
while(!q[i].empty())
{
v[pos++]=q[i].front();
q[i].pop();
if(i>0) run=1;
}
}
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(size_t i=0;i<n;++i)
scanf("%d",&v[i]);
lsd();
for(size_t i=0;i<n;++i)
printf("%d ",v[i]);
return 0;
}