Pagini recente » Cod sursa (job #2767473) | Cod sursa (job #1339389) | Cod sursa (job #1368442) | Cod sursa (job #3261013) | Cod sursa (job #1957283)
#include<fstream>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
long long n,a,b,c,ok,i,j,e,x;
int f[270],s[270];
int v[10000003],w[10000003];
int main(){
fin>>n>>a>>b>>c;
v[1]=b;
for(i=2;i<=n;i++){
e=a*v[i-1]%c;
e+=b;
e=e%c;
v[i]=e;
}
for(j=1;j<=4;j++){
for(i=0;i<256;i++){
f[i]=0;
}
for(i=1;i<=n;i++){
x=(v[i]>>ok)%255;
f[x]++;
}
s[0]=f[0];
for(i=1;i<256;i++){
s[i]=s[i-1]+f[i];
}
for(i=n;i>=1;i--){
s[(v[i]>>ok)%255]--;
x=s[(v[i]>>ok)%255];
w[x+1]=v[i];
}
for(i=1;i<=n;i++){
v[i]=w[i];
}
ok+=8;
}
for(i=1;i<=n;i+=10){
fout<<v[i]<<" ";
}
return 0;
}