Pagini recente » Cod sursa (job #965398) | Cod sursa (job #948719) | Cod sursa (job #1572303) | Cod sursa (job #3265583) | Cod sursa (job #2807702)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n,x,y,z;
int a[10000005],t[10000005];
int cnt[256];
void solve()
{
for(int b=0; b<4; b++)
{
fill(t+1,t+n+1,0);
fill(cnt,cnt+256,0);
int i;
for(i=1; i<=n; i++)
cnt[(a[i]>>(8*b))&255]++;
for(i=1; i<=256; i++)
cnt[i]+=cnt[i-1];
for(i=256; i>=1; i--)
cnt[i]=cnt[i-1];
cnt[0]=0;
for(i=1; i<=n; i++)
t[++cnt[(a[i]>>(8*b))&255]]=a[i];
for(i=1; i<=n; i++)
a[i]=t[i];
}
}
int main()
{
fin>>n>>x>>y>>z;
int i;
a[1]=y;
for(i=2; i<=n; i++)
a[i]=(1LL*a[i-1]*x%z+y)%z;
solve();
for(i=1; i<=n; i+=10)
fout<<a[i]<<" ";
fout<<"\n";
return 0;
}