Pagini recente » Cod sursa (job #1662135) | Cod sursa (job #2368480) | Cod sursa (job #507641) | Cod sursa (job #1441355) | Cod sursa (job #2390481)
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, a, b, c, cif, nr, maxim, v[10000005];
long long p;
vector<int> A[66000];
int main()
{
int i, j;
fin >> n >> a >> b >> c;
v[1] = b;
for (i=2;i<=n;i++)
{
v[i] = (1ll*a*v[i-1]+b)%c;
if (v[i] > maxim)
maxim = v[i];
}
p = 1;
do
{
p<<=16;
for (i=0;i<(1<<16);i++)
A[i].clear();
for (i=1;i<=n;i++)
{
cif = (v[i]%p)/(p>>16);
A[cif].pb(v[i]);
}
nr = 0;
for (i=0;i<(1<<16);i++)
for (j=0;j<A[i].size();j++)
v[++nr] = A[i][j];
} while (p<=maxim);
for (i=1;i<=n;i+=10)
fout << v[i] << ' ';
return 0;
}