Pagini recente » Cod sursa (job #549047) | Cod sursa (job #1327792) | Cod sursa (job #1787197) | Cod sursa (job #736570) | Cod sursa (job #1916391)
#include <fstream>
#include <vector>
#define Nmax 10000001
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n,a,b,c,v[Nmax],nr;
vector<int> BUK[301];
void _sort(int mask)
{
for (int i=1;i<=n;i++)
BUK[v[i]&mask].push_back(v[i]);
nr = 1;
for (int i=0;i<=260;i++)
for (int j=0;j<BUK[i].size();j++)
v[nr++] = BUK[i][j];
}
int main()
{
f>>n>>a>>b>>c;
v[1] = b;
for (int i=2;i<=n;i++)
v[i] = (a*v[i-1] + b)%c;
int mask = (1<<8)-1;
for (int i=1;i<=4;i++,mask<<=8)
_sort(mask);
for (int i=1;i<=n;i+=10)
g<<v[i]<<' ';
return 0;
}