Pagini recente » Cod sursa (job #2814510) | Cod sursa (job #816547) | Cod sursa (job #1356015) | Cod sursa (job #266499) | Cod sursa (job #3200047)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
vector<int> vec[999999];
const int MOD=1000000;
int v[10000000],n,vmax,p,A,B,C,c,i,cc,k,j;
int main()
{
fin>>n>>A>>B>>C;
v[0]=B;
for(i=1;i<=n-1;i++)
{
v[i]=((long long)A*v[i-1]+B)%C;
vmax=max(vmax,v[i]);
}
c=0;
while(vmax>0)
{
c++;
vmax=vmax/MOD;
}
p=1;
for(cc=1;cc<=c;cc++)
{
for(i=0;i<=n-1;i++)
{
vec[v[i]/p%MOD].push_back(v[i]);
}
k=0;
for(i=0;i<=MOD-1;i++)
{
for(j=0;j<vec[i].size();j++)
{
k++;
v[k]=vec[i][j];
}
vec[i].clear();
}
p=p*MOD;
}
for(i=0;i<=n-1;i=i+10)
{
fout<<v[i]<<" ";
}
fin.close();
fout.close();
return 0;
}