Pagini recente » Cod sursa (job #2871897) | Cod sursa (job #2193720) | Cod sursa (job #2393462) | Cod sursa (job #485443) | Cod sursa (job #1600551)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("radixsort.in");
ofstream fout("radixsort.out");
const int NMax = 1e7 + 5;
int n;
int v[NMax], A[10][NMax];
inline void Radix(const int &a){
int b = 1, c, k = 0;
for(int i = 1; i <= a; i++) b *= 10;
for(int i = 0; i < 10; i++) A[i][0] = 0;
for(int i = 1; i <= n; i++){
c = (v[i] / b) % 10;
A[c][0]++;
A[c][A[c][0]] = v[i];
}
for(int i = 0; i < 10; i++){
for(int j = 1; j <= A[i][0]; j++){
v[++k] = A[i][j];
}
}
}
int main(){
int a, b, c;
fin >> n >> a >> b >> c;
v[1] = b;
for(int i = 2; i <= n; i++){
v[i] = (1LL * a * v[i - 1] + b) % c;
}
for(int i = 0; i < 9; i++){
Radix(i);
}
for(int i = 1; i <= n; i += 10){
fout << v[i] << " ";
}
return 0;
}