Cod sursa(job #2083322)

Utilizator daniela12Sandu Daniela Teodora daniela12 Data 7 decembrie 2017 15:56:28
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500040], n;
int c[10][50040], fr[10], re[10];
void citire()
{
    int i;
    f>>n;
    for(i=1;i<=n;++i)
        f>>v[i];
    f.close();
}
void afisare()
{
    int i;
    for(i=1;i<=n;++i)
        g<<v[i]<<" ";
    g<<endl;
    g.close();
}
void ins (int cif, int x)
{
    c[cif][fr[cif]]=x;
    fr[cif]++;
}
void coada (int p)
{
    int i, j, k;
    for(i=1;i<=n;i++)
        ins(v[i]%p, v[i]);
    k=1;
    for(i=0;i<=9;++i)
        for(j=re[i];j<fr[i];++j)
            v[k]=c[i][j], ++k, ++re[i];
}
void radix ()
{
    int i, mx=0, cif=1, p=10;
    for(i=1;i<=n;i++)
        if(v[i]>mx) mx=v[i];
    while(p/10<mx)
    {
        coada(p);
        p*=10;
    }
}
int main()
{
    citire();

    radix();
    afisare();
}