Cod sursa(job #2289927)

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

long n, a[500001];
vector<long> v[10];

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

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