Pagini recente » Cod sursa (job #3248378) | Cod sursa (job #212297) | Cod sursa (job #1790284) | Cod sursa (job #2093902) | Cod sursa (job #2540797)
#include <fstream>
#define BAZA 256
using namespace std;
int n,a,b,c,i,maxim,cifre,z,v[10000001],w[10000001],f[10];
int main () {
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
fin>>n>>a>>b>>c;
v[1]=(a*v[0]+b)%c;
for (i=2;i<=n;i++){
v[i]=(a*v[i-1]+b)%c;
if (v[i]>maxim){
maxim=v[i];
}
}
while (maxim!=0){
cifre++;
maxim/=BAZA;
}
for (c=1;c<=cifre;c++){
for (i=0;i<BAZA;i++){
f[i]=0;
}
for (i=1;i<=n;i++){
f[((v[i]>>z)&(BAZA-1))]++;
}
for (i=1;i<BAZA;i++){
f[i]+=f[i-1];
}
for (i=n;i>=1;i--){
w[f[((v[i]>>z)&(BAZA-1))]--]=v[i];
}
for (i=1;i<=n;i++){
v[i]=w[i];
}
z+=8;
}
for (i=1;i<=n;i+=10){
fout<<v[i]<<" ";
}
return 0;
}