Pagini recente » Cod sursa (job #1204895) | Cod sursa (job #2758583) | Cod sursa (job #907654) | Cod sursa (job #965994) | Cod sursa (job #1519032)
#include<bits/stdc++.h>
using namespace std;
int i,j,a[10000005],b[10000005],N,Ax,Bx,Cx,aux[260];
int main()
{
ifstream cin("radixsort.in");
ofstream cout("radixsort.out");
ios_base::sync_with_stdio(0); cin.tie(0);
cin>>N>>Ax>>Bx>>Cx; a[1]=Bx;
for(i=2;i<=N;++i) a[i]=(1LL*Ax*a[i-1]+Bx)%Cx;
for(j=0;j<25;j+=8)
{
memset(aux,0,sizeof(aux));
for(i=1;i<=N;++i) ++aux[(a[i]>>j)&255];
for(i=1;i<256;++i) aux[i]+=aux[i-1];
for(i=N;i;--i) b[aux[(a[i]>>j)&255]--]=a[i];
memcpy(a,b,sizeof(b));
}
for(i=1;i<=N;i+=10) cout<<a[i]<<" \n"[i+10>N];
return 0;
}