Cod sursa(job #1319630)

Utilizator robx12lnLinca Robert robx12ln Data 17 ianuarie 2015 11:33:36
Problema Radix Sort Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int f[257],i,t,v[10000005],x[10000005],n,A,B,C;
int cf(int x,long long p){
    return ((x>>p)%255);
}
long long p;
int main(){
    fin>>n>>A>>B>>C;
    v[1]=B;
    for(i=2;i<=n;i++){
        v[i] = (A * 1LL * v[i-1] + B) % C;
    }
    p=0;
    for(t=4;t!=0;t--){
        for(i=1;i<=255;i++){
            f[i]=0;
        }
        for(i=1;i<=n;i++){
            f[cf(v[i],p)]++;
        }
        for(i=1;i<=255;i++){
            f[i]+=f[i-1];
        }
        for(i=n;i>=1;i--){
            x[ f[cf(v[i],p)]--]=v[i];
        }
        for(i=1;i<=n;i++){
            v[i]=x[i];
        }
        p+=8;
    }
     for(i=1;i<=n;i+=10){
           fout<<v[i]<<" ";
    }
    return 0;
}