Pagini recente » Cod sursa (job #1807162) | Cod sursa (job #2197825) | Cod sursa (job #93895) | Cod sursa (job #1884266) | Cod sursa (job #1332012)
#include <fstream>
#include <cstring>
#define Nmax 10000100
using namespace std;
int N, A, B, C, V[Nmax];
void QuickSort(int A, int B) {
int left, right, middleValue;
left = A;
right = B;
middleValue = V[left + (right - left)/ 2];
while(left <= right) {
while(V[left] < middleValue)
left++;
while(middleValue < V[right])
right--;
if(left <= right) {
swap(V[left], V[right]);
left++;
right--;
}
}
if(A < right)
QuickSort(A, right);
if(left < B)
QuickSort(left, B);
}
void Solve() {
V[1] = B;
for(int i = 2; i <= N; i++)
V[i] = (A * V[i - 1] + B) % C;
QuickSort(1, N);
}
void Read() {
ifstream in("radixsort.in");
in >> N >> A >> B >> C;
in.close();
}
void Write() {
ofstream out("radixsort.out");
for(int i = 1; i <= N; i += 10)
out << V[i] << ' ';
out << '\n';
out.close();
}
int main() {
Read();
Solve();
Write();
return 0;
}