Pagini recente » Cod sursa (job #1510525) | Cod sursa (job #773674) | Cod sursa (job #1064838) | Cod sursa (job #2135294) | Cod sursa (job #1799236)
#include <fstream>
using namespace std;
int v[10000002];
int cou[2000];
int tem[10000002];
int d[4]={0,8,16,24};
int a,b,c,n,q;
int main()
{
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
fin>>n>>a>>b>>c;
v[0]=b;
for(int i=1;i<n;i++){
v[i] = (1LL*a*v[i-1]+b)%c;
}
int l=1;
for(int i=0;i<4;i++)
{
for(int i=0;i<256;i++)
{
cou[i]=0;
}
for(int j=0;j<n;j++)
{
cou[((v[j] >> d[i]) & 0xff)]++;
}
for(int j=1;j<256;j++)
{
cou[j]+=cou[j-1];
}
for(int j=n+1;j>0;j--)
{
tem[cou[((v[j] >> d[i]) & 0xff)]]=v[j];
cou[((v[j] >> d[i]) & 0xff)]--;
}
for(int j=0;j<n;j++)
{
v[j]=tem[j];
}
}
for(int i=0;i<=n;i+=10)
{
fout<<v[i]<<" ";
}
return 0;
}