Cod sursa(job #2498032)

Utilizator Bogdan_BuzatuBuzatu Bogdan Mihai Bogdan_Buzatu Data 23 noiembrie 2019 13:42:51
Problema Radix Sort Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int v[10000100],n,maxim,x,y,z,aux[10000100],frecvc[256];

int main(){
    fin>>n>>x>>y>>z;
    v[1]=y;
    for(int i=2;i<=n;i++){
        v[i]=(x*1LL*v[i-1] +y)%z;
    }
    long long p=0;
    for(int i=1;i<=4;i++){
        for(int j=0;j<256;j++){
            frecvc[j]=0;
        }

        for(int j=1;j<=n;j++){
            frecvc[((v[j]>> p)&255)]++;
        }

        for(int j=1; j<256;j++){
            frecvc[j]+=frecvc[j-1];
        }

        for (int j =n; j>= 1; j--){
            aux[frecvc[((v[j] >> p)&255)]] = v[j];
            frecvc[((v[j] >> p)&255)]--;
        }

        for (int j = 1; j <=n; j++){
            v[j]=aux[j];
        }
        p+=8;

    }
    for(int i=1;i<=n;i+=10){
        fout<<v[i]<<" ";
    }
}