Cod sursa(job #2758730)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 12 iunie 2021 11:55:12
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 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<32;p+=8){
        vector<int> bucket[256];
        for(int i=0;i<n;i++){
            bucket[(v[i]>>p)&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+=10){
        out<<v[i]<<" ";
    }
}