Cod sursa(job #2269476)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 25 octombrie 2018 23:58:27
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");
int n, v[500002];
void radixsort(int lv){
    vector <int> r[10];
    int c, k=0, i, j;
    for(i = 0; i < n; i++){
        c=v[i] / lv % 10;
        r[c].push_back(v[i]);
    }
    if((int)r[0].size() == n)
        for(j=0;j<(int)r[0].size();j++)
            v[k++]=r[0][j];
    else{
        for(i=0;i<=9;i++)
            for(j=0;j<(int)r[i].size();j++)
                v[k++]=r[i][j];
        radixsort(lv * 10);
    }
}
int main()
{
    int i;
    f>>n;
    for(i = 0; i < n; i++)
        f>>v[i];
    radixsort(1);
    for(i = 0; i < n; i++)
        g<<v[i]<<" ";
}