Pagini recente » Cod sursa (job #2435485) | Cod sursa (job #2009037) | Cod sursa (job #821087) | Cod sursa (job #1614095) | Cod sursa (job #2025084)
#include <fstream>
#include <iostream>
#include <queue>
using namespace std;
ifstream fin ("radixsort.in");
int n,a,b,c,i,maxi,curent,rsp,stop;
int v[10000005];
queue < int > q[260];
int main()
{
fin>>n>>a>>b>>c;
for( i = 1 ; i <= n ; i++ )
{
v[ i ] = ( v[ i - 1 ] * a + b ) % c;
maxi = max( maxi , v[ i ] );
}
curent = 1;
for( int j = 1 ; j <= 4 ; j++ )
{
for( i = 1 ; i <= n ; i++ )
{
a = ( v[ i ] / curent ) % 256;
q[ a ].push( v[ i ] );
}
rsp = 0;
for( i = 0 ; i <= 256 ; i++ )
{
while( q[ i ].size() )
{
v[ ++rsp ] = q[ i ].front();
q[ i ].pop();
}
}
curent *= 256;
}
FILE *fout;
fout = fopen( "radixsort.out" , "w" );
for( i = 0 ; i < n / 10; i++ )
fprintf(fout , "%d " , v[ 10 * i + 1 ] );
}