Pagini recente » Cod sursa (job #1278374) | Cod sursa (job #920131) | Cod sursa (job #2808833) | Monitorul de evaluare | Cod sursa (job #1142476)
#include <cstdio>
#include <vector>
#include <algorithm>
#define val first
#define poz second
#define pb push_back
#define Nmax 500010
using namespace std;
int i,n,a,b,c,Max;
long long v[Nmax];
vector <int> vec[10];
void radix(long long p)
{
int i,k,j;
for(i=1;i<=n;++i)
vec[v[i]/p%10].pb(v[i]);
k=0;
for(i=0;i<=9;++i)
{ for(j=0;j<vec[i].size();++j)
v[++k]=vec[i][j];
vec[i].clear();
}
if(p*10<=Max) radix(p*10);
else{
for(i=1;i<=n;i++) printf("%lld ",v[i]);
printf("\n");
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%lld", &n);
for (i=1;i<=n;++i)
{
scanf("%lld", &v[i]);
if(v[i]>Max) Max=v[i];
}
radix(1);
return 0;
}