Cod sursa(job #515204)

Utilizator LgregL Greg Lgreg Data 20 decembrie 2010 18:15:29
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;


int l[505050],put[15],v[15],N,ver[505050];


void sort(int k)
{
    if(k>=11)
    return;
    if(k>1)
    put[k]=put[k-1]*10;
    for(int i=0;i<=10;++i)
        v[i]=0;
    v[0]=1;
    for(int i=1;i<=N;++i)
    {
    v[(l[i]/put[k])%10+1]++;
    }
    for(int i=1;i<=10;++i)
        v[i]=v[i-1]+v[i];
    for(int i=1;i<=N;++i)
    {
        ver[v[(l[i]/put[k])%10]]=l[i];
        ++v[(l[i]/put[k])%10];
    }
    for(int i=1;i<=N;++i)
       l[i]=ver[i];

sort(k+1);
}

int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>N;
    for(int i=1;i<=N;++i)
        fin>>l[i];
    put[1]=1;
    sort(1);
    for(int i=1;i<=N;++i)
        fout<<l[i]<<" ";
}