Pagini recente » Cod sursa (job #2318147) | Cod sursa (job #1845323) | Cod sursa (job #644090) | Cod sursa (job #3005155) | Cod sursa (job #2923643)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("radixsort.in");
ofstream out("radixsort.out");
int n,a,b,c,p,p2,v[10000005],i,j;
vector <int> cc[46345];
int main()
{
in>>n>>a>>b>>c;
v[1]=b;
for (i=1;i<=n;++i)
{v[i]=(a*v[i-1]+b)%c;}
p=1;
p2=46341;
for (i=1;i<=2;++i)
{
for (j=n;j>=1;--j)
{
cc[v[j]/p%p2].push_back(v[j]);
}
v[0]=0;
for (j=0;j<46341;++j)
{
while (cc[j].size())
{
v[++v[0]]=cc[j][cc[j].size()-1];
cc[j].pop_back();
}
}
p*=46341;
}
for (i=1;i<=n;i+=10)
out<<v[i]<<" ";
return 0;
}