Cod sursa(job #2268411)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 24 octombrie 2018 19:37:04
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#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;
}