Pagini recente » Cod sursa (job #3279514) | Cod sursa (job #2138109) | Cod sursa (job #1734395) | Cod sursa (job #2893365) | Cod sursa (job #1317726)
#include <cstdio>
#include <vector>
#define pb push_back
using namespace std;
int vv[10000010];
vector <int> v[10];
inline void del ()
{
vector <int> s[10];
for (int i = 0; i <= 9; ++i)
v[i].swap (s[i]);
}
int main ()
{
freopen ("radixsort.in", "r", stdin);
freopen ("radixsort.out", "w", stdout);
int n;
long long a, b, c;
scanf ("%d %lld %lld %lld", &n, &a, &b, &c);
vv[1] = b;
for (int i = 2; i <= n; ++i)
vv[i] = (1LL * vv[i - 1] * a + b) % c;
int r = 1;
for (int i = 1; i <= 9; ++i)
{
for (int i = 1; i <= n; ++i)
v[vv[i] / r % 10].pb (vv[i]);
int k = 0;
for (int i = 0; i <= 9; ++i)
for (int j = 0; j < v[i].size (); ++j)
vv[++k] = v[i][j];
del ();
r *= 10;
}
for (int i = 1; i <= n; i += 10)
printf ("%d ", vv[i]);
printf ("\n");
return 0;
}