Pagini recente » Cod sursa (job #2641980) | Cod sursa (job #483187) | Cod sursa (job #1078309) | Cod sursa (job #2559337) | Cod sursa (job #2253236)
#include <bits/stdc++.h>
using namespace std;
int values[10000000];
vector <int> ordered(10000000);
void radixSort(int arr[], int n, int exp){
int k = 0;
vector <int> bucket[256];
for (int i = 1; i <= n; i++){
bucket[(arr[i] >> (8 * exp)) & 255].push_back(arr[i]);
}
for (int i = 0; i<= 255; i++) {
for (int j = 0; j < bucket[i].size(); j++){
k++;
ordered[k] = bucket[i][j];
}
}
for (int i = 1; i <= n; i ++){
arr[i] = ordered[i];
}
}
int main() {
ifstream f("radixsort.in");
ofstream g("radixsort.out");
int n, a, b, c;
int max;
f >> n >> a >> b >> c;
for (int i = 1; i <= n; i ++){
if (i == 1){
values[i] = b;
max = values[i];
}
else{
values[i] = (1LL * a * values[i - 1] + b) % c;
if (values[i] > max){
max = values[i];
}
}
}
for (int i = 0; i <= 3; ++ i)
{
radixSort(values, n, i);
}
for ( int i = 1; i <= n ;i += 10){
g << values[i] << " ";
}
return 0;
}