Cod sursa(job #2698645)

Utilizator ElektrykT E S L A P E F E L I E Elektryk Data 22 ianuarie 2021 17:11:55
Problema Radix Sort Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in ("radixsort.in");
ofstream out ("radixsort.out");

deque < int > q[300];

int n, a, b, c;

long long v[10000137], k;

int main()
{
    in >> n >> a >> b >> c;
    v[1] = b;
    for ( int i = 2 ; i <= n ; ++i )
        v[i] = ( 1ll * a * v[i - 1] + b ) % c;
    for ( int bucket = 0 ; bucket < 4 ; ++bucket )
    {
        for ( int i = 1 ; i <= n ; ++i )
            q[( v[i] >> ( 8 * bucket ) ) & 255].push_back ( v[i] );
        n = 0;
        for ( int i = 0 ; i < 256 ; ++i )
            while ( !q[i].empty () )
            {
                v[++n] = q[i].front();
                q[i].pop_front();
            }
    }
    for ( int i = 1 ; i <= n ; i += 10 )
        out << v[i] << " ";
    return 0;
}