Cod sursa(job #2289967)

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

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

int main()
{
f>>n;
long x;
for(int i = 0 ; i < n ; i++)
{
    f>>x;
    a.push_back(x);
}

long 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;
}