Pagini recente » Cod sursa (job #703222) | Cod sursa (job #1748351) | Cod sursa (job #1541568) | Cod sursa (job #1053755) | Cod sursa (job #1674665)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
#define mod 8
#define mask 255
using namespace std;
int n;
int v[10000005][2];
void radixSort(int i) {
int ind[256], cnt[256];
memset(cnt, 0, sizeof(cnt));
int j = i & 1;
for(int k = 0; k < n; k ++) cnt[(v[k][j] >> (i * 8)) & mask] ++;
ind[0] = 0;
for(int k = 1; k <= mask; k ++)
ind[k] = ind[k - 1] + cnt[k - 1];
for(int k = 0; k < n; k ++)
v[ind[(v[k][j] >> (i * 8)) & mask] ++][j ^ 1] = v[k][j];
}
int main()
{
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int a, b, c;
f >> n >> a >> b >> c;
v[0][0] = b;
for(int i = 1; i < n; i ++)
v[i][0] = ((1LL * a * v[i - 1][0] + b) % c);
for(int i = 0; i < 32; i ++) {
radixSort(i);
}
for(int i = 0; i < n; i += 10) g << v[i][0] << " ";
g << "\n";
return 0;
}