Pagini recente » Cod sursa (job #3219406) | Solutii preONI 2006 - Runda a 2-a | Cod sursa (job #461428) | Cod sursa (job #2975818) | Cod sursa (job #1108583)
#include <fstream>
using namespace std;
ifstream fin ("radixsort.in");
ofstream fout ("radixsort.out");
const int N = 1e7 + 5;
unsigned a[2][N], n, v[N], A, B, C, MAX;
int main() {
fin >> n >> A >> B >> C;
v[0] = B;
for (unsigned i = 1; i < n; ++i)
v[i] = (1LL * A * v[i-1] + B) % C;
for (unsigned p = 0; p < 32; ++p) {
unsigned crt = 1LL << p;
a[1][0] = a[0][0] = 0;
for (unsigned i = 0; i < n; ++i)
if (v[i] & crt)
a[1][++a[1][0]] = v[i];
else
a[0][++a[0][0]] = v[i];
unsigned k = 0;
for (int i = 0; i < 2; ++i)
for (unsigned j = 1; j <= a[i][0]; ++j)
v[k++] = a[i][j];
}
for (unsigned i = 0; i < n; i += 10)
fout << v[i] << " ";
}