Pagini recente » Cod sursa (job #2453929) | Cod sursa (job #331069) | Cod sursa (job #2843651) | Cod sursa (job #311533) | Cod sursa (job #2973969)
#include <bits/stdc++.h>
using namespace std;
int partition(vector<int>& v, int left, int right) {
cout << "p " << left << ' ' << right << '\n';
if (left >= right)
return left;
int index = left;
for (int i = left; i < right; ++i)
if (v[i] <= v[right])
swap(v[index++], v[i]);
swap(v[index], v[right]);
return index;
}
void quicksort(vector<int>& v, int left, int right) {
if (left >= right)
return;
cout << "q " << left << ' ' << right << '\n';
int index = partition(v, left, right);
quicksort(v, left, index - 1);
quicksort(v, index + 1, right);
}
int main() {
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
vector<int> v(n);
for (int &x : v)
fin >> x;
quicksort(v, 0, n - 1);
for (int &x : v)
fout << x << ' ';
fout << '\n';
}