Cod sursa(job #2269482)

Utilizator marian013Giugioiu Marian Constantin marian013 Data 26 octombrie 2018 00:13:44
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[500002], r[500002], sf[10], st[10];
void radixsort(long long lv){
    int c, k=0, i, j;
    for(i=0;i<=9;++i) sf[i]=0;
    for(i = 0; i < n; i++){
        c=v[i] / lv % 10;
        ++sf[c];
    }
    st[0]=0;
    for(i=1;i<=9;++i)
        st[i]=st[i-1]+sf[i-1];
    if(sf[0] == n) ;
    else{
        for(i = 0; i < n; i++)
        {
            c=v[i] / lv % 10;
            r[st[c]]=v[i];
            st[c]++;
        }
        for(i = 0; i < n; i++) v[i]=r[i];
        radixsort(lv * 10LL);
    }
}
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]<<" ";
}