Cod sursa(job #2290726)

Utilizator dragos99Homner Dragos dragos99 Data 26 noiembrie 2018 21:14:49
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
#include<vector>
using namespace std;
    ifstream f("algsort.in");
    ofstream g("algsort.out");

long n, a[500001];
long v[9][500001];

int main()
{
f>>n;
for(int i = 0 ; i < n ; i++)
    f>>a[i];

long long ok = 1, p = 1, cifra;
while(ok){
    ok = 0;
    int k = 0;
    for(int i = 0 ; i < 9 ; i++)
        v[i][0] = 0 ;
    for(int i = 0 ; i < n ; i++){
        cifra = a[i] / p % 10;
        if(cifra){
            ok = 1;
            v[cifra-1][ ++v[cifra-1][0] ] = a[i];
        }else{
            a[k++] = a[i];
        }
    }
    for(int i = 0 ; i < 9 ; i++)
        for(int j = 1 ; j <= v[i][0] ; j++){
            a[k++] = v[i][j];
        }
    p *= 10;
}
for(int i = 0 ; i < n ; i++)
    g<<a[i]<<" ";
return 0;
}