Mai intai trebuie sa te autentifici.

Cod sursa(job #1691703)

Utilizator robx12lnLinca Robert robx12ln Data 19 aprilie 2016 11:15:48
Problema Radix Sort Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include<fstream>
#include<cstring>
#define DIM 10000005
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int cifra( int nr, int p ){
    return( (nr>>p) & 255 );
}
int p, x[DIM], v[DIM], A, B, C, n, f[260];
int main(){
    fin >> n >> A >> B >> C;
    v[1] = B;
    for( int i = 2; i <= n; i++ ){
        v[i] = ( A * 1LL * v[i - 1] + B ) % C;
    }
    p = 0;
    for( int t = 1; t <= 4; t++ ){
        memset( f, 0, sizeof(f) );
        for( int i = 1; i <= n; i++ ){
            f[ cifra( v[i], p ) ]++;
        }
        for( int i = 1; i <= 255; i++ ){
            f[i] += f[i - 1];
        }
        for( int i = n; i >= 1; i-- ){
            x[ f[cifra( v[i], p )]-- ] = v[i];
        }
        memcpy( v, x, sizeof( x ) );
        p += 8;
    }
    for( int i = 1; i <= n; i += 10 ){
        fout << v[i] << " ";
    }
    return 0;
}