Pagini recente » Cod sursa (job #2231251) | Cod sursa (job #744022) | Cod sursa (job #1921319) | Rating Bejenescu-Babusanu Stefan (Trifoita) | Cod sursa (job #1668346)
#include <fstream>
#include <string.h>
#include <queue>
using namespace std;
#define MAXN 10000005
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
int n, a, b, c;
long long v[MAXN];
queue<int> coada[260];
int biti(int pas, int nr)
{
return ( nr >>(pas*8) ) & 255 ;
}
void doSort(int pas, int V[])
{
int i, crt;
for (i=0; i<n; i++)
coada[ biti(pas, v[i] ) ].push( v[i] );
crt = 0;
for(i=0; i<=255; i++)
{
while(!coada[i].empty())
{
v[crt++]=coada[i].front();
coada[i].pop();
}
}
}
void RadixSort()
{
int i;
for(i=0; i<4; i++)
doSort(i, v);
}
int main()
{
int i;
cin >> n >> a >> b >> c;
v[0] = b;
for(i=1; i<n; i++)
v[i] = ( a * v[i-1] + b ) % c;
RadixSort();
for(i=0; i<n; i+=10)
cout<<v[i]<<" ";
return 0;
}