Cod sursa(job #2758727)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 12 iunie 2021 11:42:46
Problema Radix Sort Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
vector<int> v(10000000);
int main(){
    long long n,a,b,c;
    in>>n>>a>>b>>c;
    v[0]=b;
    for(int i=1;i<n;i++){
        v[i]=(a*v[i-1]+b)%c;
    }
    for(int p=0;p<4;p++){
        vector<int> bucket[256];
        for(int i=0;i<n;i++){
            bucket[(v[i]>>p*8)&255].push_back(v[i]);
        }
        for(int i=0,j=0;i<256;i++){
            for(auto k:bucket[i]){
                v[j++]=k;
            }
        }
    }
    for(int i=0;i<n;i++){
        if(i%10==0)out<<v[i]<<" ";
    }
}