Pagini recente » Cod sursa (job #2592417) | Cod sursa (job #2958933) | Cod sursa (job #2732612) | Cod sursa (job #2532494) | Cod sursa (job #2529417)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
int n, a, b, c, y, e;
vector <int> v;
void sort_frecv()
{
vector <int> d[10];
for (size_t i = 0; i < v.size(); ++i)
d[(v[i] / e) % 10].push_back(v[i]);
int cnt = 0;
for (int i = 0; i < 10; ++i)
for (size_t j = 0; j < d[i].size(); ++j)
v[cnt++] = d[i][j];
}
void radix_sort()
{
e = 1;
while (e < c)
{
sort_frecv();
e *= 10;
}
}
int main()
{
fin >> n >> a >> b >> c;
v.resize(n);
v[0] = b;
for (int i = 1; i < n; ++i)
v[i] = (a * v[i - 1] + b) % c;
radix_sort();
for (size_t i = 0; i < n; i += 10)
fout << v[i] << " ";
return 0;
}