Cod sursa(job #1802567)

Utilizator NarniussAnghelache Bogdan Narniuss Data 10 noiembrie 2016 14:51:37
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#define dim 500002
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int rad[11][dim], v[dim];


int main()
{
    long p=1, i, j, n, mx=0, k=0,z;


    f>>n>>v[1];
    mx=v[1];
    for(i = 2 ; i <= n ; i++)
    {
        f>>v[i];
        if(mx < v[i]) mx= v[i];
    }
    while(mx){
        ++k;
        mx/=10;
    }

    for(i = 1 ; i <= k ; i++){
        for(j = 1 ; j <= n ; j++)
    {
        int x = (v[j]/p)%10;
        rad[x][0]++;
        int y = rad[x][0];
        rad[x][y] = v[j];
    }
    k=0;
    for(z = 0 ; z <= 9 ; z++)
        for(j = 1 ; j <= rad[z][0] ; j++)
             v[++k] = rad[z][j];
        for(j=0 ; j <= 9 ; j++)
            rad[j][0]=0;
        p*=10;
    }
    for(i = 1 ;i <= n ;i++)
    {
        g << v[i] << " ";
    }
    return 0;
}