Pagini recente » Cod sursa (job #2437581) | Cod sursa (job #2976691) | Cod sursa (job #1158951) | Cod sursa (job #2948406) | Cod sursa (job #3133183)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
#define MAX 10000010
int a[MAX], sir[MAX], fr[256];
int main()
{
int n, A, B, C, i, j;
fin >> n >> A >> B >> C;
a[1] = B;
for (i = 2; i <= n; i++)
{
a[i] = (1LL * a[i - 1] * A + 1LL * B) % C;
}
for (j = 0; j < 4; j++)
{
for (i = 1; i <= n; i++)
{
fr[(a[i] >> (j << 3)) & 255]++;
}
for (i = 1; i <= 255; i++)
{
fr[i] += fr[i - 1];
}
for (i = n; i > 0; i--)
{
sir[fr[(a[i] >> (j << 3)) & 255]--] = a[i];
}
memcpy(a, sir, sizeof(a));
memset(fr, 0, sizeof(fr));
}
for (i = 1; i <= n; i += 10)
{
fout << a[i] << " ";
}
fin.close();
fout.close();
return 0;
}