Pagini recente » Cod sursa (job #2981958) | Cod sursa (job #1906409) | Istoria paginii runda/oni2011 | Cod sursa (job #2146521) | Cod sursa (job #2897468)
/// Preset de infoarena
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
const int maxN = 10000005, base = 100;
int n, a, b, c, v[maxN];
vector <int> x[base + 5];
int main()
{
fin >> n >> a >> b >> c;
v[1] = b;
for(int i = 2; i <= n; i++)
v[i] = (v[i - 1] * a + b) % c;
int pow = 1;
for(int i = 1; i <= 5; i++)
{
for(int j = 0; j <= base; j++)
x[j].clear();
for(int j = 1; j <= n; j++)
{
int cifra = v[j] % base;
if(pow > 1)
cifra = (v[j] / (pow / base)) % base;
x[cifra].push_back(v[j]);
}
int ind = 0;
for(int j = 0; j <= base; j++)
for(int elem : x[j])
v[++ind] = elem;
pow *= base;
}
for(int i = 0; i < n / base; i++)
fout << v[base * i + 1] << ' ';
if(n % base != 0)
fout << v[base * (n / base) + 1] << ' ';
return 0;
}