Pagini recente » Cod sursa (job #2929241) | Cod sursa (job #3125947) | Cod sursa (job #2827456) | Cod sursa (job #2697336) | Cod sursa (job #2551445)
#include <bits/stdc++.h>
using namespace std;
ifstream f("radixsort.in");
ofstream g("radixsort.out");
unsigned int v[10000005];
unsigned int v_aux[10000005];
int n;
unsigned long long a, b, c;
int fr[300];
void radixSort()
{
unsigned int base = 256;
int i;
int j;
unsigned int mod = 1;
for (j = 1; j <= 4; j++)
{
for (i = 0; i <= 256; i++)
{
fr[i] = 0;
}
for (i = 1; i <= n; i++)
{
fr[(v[i]/mod)%base + 1] ++ ;
}
for (i = 1; i <= 256; i++)
{
fr[i] += fr[i-1];
}
for (i = 1; i <= n; i++)
{
v_aux[fr[(v[i]/mod)%base] + 1] = v[i];
fr[(v[i]/mod)%base] ++;
}
for (i = 1; i <= n; i++)
{
v[i] = v_aux[i];
}
mod *= base;
}
}
int main()
{
int i;
f >> n >> a >> b >> c;
v[1] = b;
unsigned long long aux;
for (i = 2; i <= n; i++)
{
aux = v[i-1] * a + b;
aux %= c;
v[i] = aux;
}
radixSort();
for (i = 1; i <= n; i += 10)
{
g << v[i] << " ";
}
return 0;
}