Pagini recente » Cod sursa (job #1505766) | Cod sursa (job #1466816) | Cod sursa (job #705162) | Cod sursa (job #95625) | Cod sursa (job #2608524)
#include <bits/stdc++.h>
std::ifstream cin("radixsort.in");
std::ofstream cout("radixsort.out");
void generate(int v[], int n, int A, int B, int C)
{
int i;
long long l;
v[1] = B;
for(i = 2; i <= n; i ++)
{ l = ( A * v[i-1] + B);
l = l % c;
v[i] = l;
}
}
void print(int v[], int n)
{
int i = 1;
while(i <= n)
{
cout<<v[i]<<" ";
i += 10;
}
}
void radixSort(int v[], int n)
{
std::vector <int> sublists[256];
int ind = 0, exp = 1, i, ind2;
while(ind < 4)
{
for(i = 1; i <= n; i ++)
sublists[(v[i] / exp) % 256].push_back(v[i]);
ind2 = 1;
for(i = 0; i < 256; i++)
for (auto &it: sublists[i])
{ v[ind2++] = it;
sublists[i].clear();
}
ind += 1;
exp = exp * 256;
}
}
int main()
{
int n, i, A, B, C;
cin >> n >> A >> B >> C;
int v[n + 1];
generate(v, n, A, B, C);
radixSort(v, n);
print(v, n);
return 0;
}