Pagini recente » Cod sursa (job #2058579) | Cod sursa (job #1789906) | Cod sursa (job #718643) | Cod sursa (job #2061620) | Cod sursa (job #2491370)
#include <bits/stdc++.h>
using namespace std;
long long A,B,C,N,v[1000001],k[1000001],nr[4];
int main()
{
ifstream f("radixsort.in");
ofstream g("radixsort.out");
f>>N>>A>>B>>C;
v[1]=B;
for(int i=2; i<=N; i++)
{
v[i] = (1LL*A * v[i-1] + B) % C;
}
int x = 1;
for(int i=0; i<=31; i++)
{
for(int j = 1; j<=N; j++)
{
nr[v[j]/x%2 + 1]++;
}
nr[1]+=nr[0];
nr[2]+=nr[1];
for(int j=1; j<=N; j++)
{
k[++nr[v[j]/x%2]]=v[j];
}
x*=2;
for(int j=1; j<=N; j++)
v[j]=k[j];
nr[0]=0;
nr[1]=0;
nr[2]=0;
}
for(int i=1; i<=N; i=i+10)
g<<v[i]<<" ";
}