Pagini recente » Cod sursa (job #221230) | Cod sursa (job #2127882) | Cod sursa (job #706544) | Cod sursa (job #3039746) | Cod sursa (job #2677550)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
const int MAXN = 10000000;
int v[MAXN];
void radix_sort(int v[], int left, int right, int bit_no){
if( left >= right || bit_no == -1 )
return;
int i, j, t;
for( i = left, j = left; i <= right; i++){
if(( v[i] & ( 1 << bit_no ) ) == 0 ){
t = v[i];
v[i] = v[j];
v[j] = t;
j++;
}
}
radix_sort(v, left, j - 1, bit_no - 1);
radix_sort(v, j, right, bit_no - 1);
}
int main()
{
int n, a, b, c, i, nr, prev, k;
in>>n>>a>>b>>c;
prev = b;
v[0] = b;
k = 0;
for( i = 1; i < n; i++ )
v[i] = ( a * v[i - 1] + b ) % c;
//out<<'\n';
radix_sort(v, 0, n - 1, 30);
for( i = 0; i < n; i++ ){
if( i % 10 == 0 )
out<<v[i]<<" ";
}
return 0;
}