Pagini recente » Cod sursa (job #154559) | Cod sursa (job #1454325) | Cod sursa (job #1964746) | Cod sursa (job #2821872) | Cod sursa (job #2268411)
#include<fstream>
#include<queue>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
queue <int> r[10],radix;
int n,vmax,i,j,x,a[500004],nr,aux;
int main()
{
fin>>n;
vmax=-1;
for(i=1;i<=n;i++)
{
fin>>a[i];
radix.push(a[i]);
if(a[i]>vmax)
{
vmax=a[i];
}
}
nr=0;
do
{
nr++;
vmax=vmax/10;
}
while(vmax!=0);
x=1;
for(i=1;i<=nr;i++)
{
while(radix.size()!=0)
{
aux=(radix.front()/x)%10;
r[aux].push(radix.front());
radix.pop();
}
x=x*10;
for(j=0;j<=9;j++)
{
while(r[j].size()!=0)
{
radix.push(r[j].front());
r[j].pop();
}
}
}
while(radix.size()!=0)
{
fout<<radix.front()<<" ";
radix.pop();
}
fin.close();
fout.close();
return 0;
}