Pagini recente » Cod sursa (job #228485) | Cod sursa (job #2677641) | Cod sursa (job #99595) | Cod sursa (job #2983913) | Cod sursa (job #1866306)
#include <bits/stdc++.h>
using namespace std ;
const int MAX = 1e7 + 14 ;
const int MOD = ( 1 << 8 ) + 14 ;
vector < int > buck [MOD] ;
int v [MAX] ;
ifstream fin ("radixsort.in") ;
ofstream fout ("radixsort.out") ;
int main ()
{
int n , a , b , c ;
fin >> n >> a >> b >> c ;
v [1] = b ;
for ( int i = 2 ; i <= n ; ++ i ) {
v [i] = (1LL * v [i-1] * a + 1LL * b) % c ;
}
for ( int i = 0 ; i < 32 ; i += 8 ) {
int sz = 0 ;
for ( int j = 1 ; j <= n ; ++ j ) {
buck [ ((v[j] >> i) & 255) ].push_back (v[j]) ;
}
for ( int j = 0 ; j <= 256 ; ++ j ) {
for ( auto x : buck[j] ) {
v [++sz] = x ;
}
buck [j].clear() ;
}
}
for ( int i = 1 ; i <= n ; i += 10 ) {
fout << v [i] << ' ' ;
}
return 0 ;
}