Cod sursa(job #778812)

Utilizator TheNechizFMI Razvan Birisan TheNechiz Data 15 august 2012 21:18:31
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
# include <fstream>
# define N 500001

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int v[N + 1],t[10][N];

int main(){

    int i,j,zece,Ncif,cif;

    fin >> v[0];

    for( i = 1 ; i <= v[0] ; ++i ) fin >> v[i];

    zece = 1;

    for( Ncif = 1 ; Ncif <= 4 ; ++Ncif ){

        if( Ncif > 1 ) zece *= 10;

        for( i = 1 ; i <= v[0] ; ++i ){

            cif = ( v[i] / zece ) % 10;

            t[ ++t[0][cif] ][cif] = v[i];
        }

        // Extrag din matrice in vector

        v[0] = 0;

        for( i = 0 ; i < 10 ; ++i )

            if( t[0][i] ){

                for( j = 1 ;  j <= t[0][i] ; ++j )

                    v[++v[0]] = t[j][i];
            }

        for( i = 0 ; i < 10 ; ++i ) t[0][i] = 0;
    }

    for( i = 1 ; i <= v[0] ; ++i ) fout << v[i] << " ";

    fin.close();
    fout.close();

    return 0;
}