Cod sursa(job #2269510)

Utilizator pasoi_stefanPasoi Stefan pasoi_stefan Data 26 octombrie 2018 01:53:07
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<cstring>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n,v[1000005],t[1000005],c[256],p[256];
int b(int i,int x){
    return (x>>(i*8))&255;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    for(int k=0;k<4;k++){
        memset(c,0,sizeof(c));
        for(int i=1;i<=n;i++)
            ++c[b(k,v[i])];
        p[0]=1;
        for(int i=1;i<256;i++)
            p[i]=c[i-1]+p[i-1];
        for(int i=1;i<=n;i++)
            t[p[b(k,v[i])]++]=v[i];
        for(int i=1;i<=n;i++)
            v[i]=t[i];
    }
    for(int i=1;i<=n;i++) cout<<v[i]<<' ';
}