Cod sursa(job #1320578)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 18 ianuarie 2015 06:13:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>

using namespace std;

unsigned long int v[500001],m[10][500001],n,z=1;
int maxl;

int main()
{
    unsigned int i,j,q,k,u,x;
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    scanf("%u", &n);
    for(i=1;i<=n;i++)
    {
        scanf("%u", &v[i]);
        while(z<=v[i])
        {
            z*=10;
            maxl++;
        }
    }

    z=1;

    for(i=1;i<=maxl;i++)
    {
        for(j=0;j<10;j++)
            m[j][0]=0;
        for(j=1;j<=n;j++)
        {
            x=v[j]/z%10;
            m[x][0]++;
            m[x][m[x][0]] = v[j];
        }
        z*=10;
        q=0;
        for(k=0;k<10;k++)
            for(u=1;u<=m[k][0];u++)
            {
                q++;
                v[q]=m[k][u];
            }
    }
    for(i=1;i<=n;i++)
        printf("%u ", v[i]);
    return 0;
}