Cod sursa(job #1938578)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 24 martie 2017 21:39:54
Problema Radix Sort Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define Bucket_size 17
using namespace std;
int n,a,b,c;
vector <int> V;

void radixsort(int bits)
{
    vector <int> Sorted_Bucket[(1<<Bucket_size)];

    for(auto it:V)  Sorted_Bucket[(it>>bits)&((1<<Bucket_size)-1)].push_back(it);

    for(int i=0,n=0; i<(1<<Bucket_size); ++i)
        for(auto it:Sorted_Bucket[i]) V[n++]=it;
}

int main()
{
    ifstream f("radixsort.in");
    ofstream g("radixsort.out");
    int i;
    f>>n>>a>>b>>c;
    V.push_back(b);
    for(int i=1; i<n; ++i)   V.push_back((1LL*a*V[i-1]+b)%c);
    for(int i=0; i<32; i+=Bucket_size) radixsort(i);
    for(int i=0; i<n; i+=10) g<<V[i]<<" ";
}