Pagini recente » Cod sursa (job #224453) | Cod sursa (job #1944450) | Cod sursa (job #1017738) | Cod sursa (job #3004172) | Cod sursa (job #1458376)
#include <fstream>
#include <vector>
using namespace std;
const int MAX = 10000050;
const int mask = 255;
int N, A, B, C;
int V[MAX];
void Sort(int Shift) {
vector<int> X[12];
for(int i = 1; i <= N; i++) {
X[V[i]/Shift %10 ].push_back(V[i]);
}
for(int i = 0, poz = 0; i <= 9; i++) {
for(size_t j = 0; j < X[i].size(); j++) {
V[++poz] = X[i][j];
}
}
}
int main() {
ifstream in("radixsort.in");
in >> N >> A >> B >> C;
in.close();
V[1] = B;
for(int i = 2; i <= N; i++)
V[i] = (1LL * A * V[i - 1] + B) % C;
int P = 1;
for(int i = 1; i <= 10; i++) {
Sort(P);
P = P * 10;
}
ofstream out("radixsort.out");
for(int i = 1; i <= N; i += 10)
out << V[i] << " ";
out.close();
}