#include <bits/stdc++.h>
using namespace std;
void QuickSort(vector<int>& in, int left, int right)
{
if (right <= left)
return;
int ipi = left + rand() % (right - left + 1);
swap(in[ipi], in[right]);
int x = in[right];
int m = left;
for (int i = left; i < right; i++)
if (in[i] <= x)
swap(in[i], in[m++]);
swap(in[m], in[right]);
QuickSort(in, left, m);
QuickSort(in, m + 1, right);
}
int main()
{
vector<int> a = {5, 4, 3, 2, 1, 10, 8, 14, 7, 6, 11};
int left = 0;
int right = a.size() - 1;
QuickSort(a, left, right);
for(int x : a)
{
cout << x << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgUXVpY2tTb3J0KHZlY3RvcjxpbnQ+JiBpbiwgaW50IGxlZnQsIGludCByaWdodCkKewoJaWYgKHJpZ2h0IDw9IGxlZnQpCgkJcmV0dXJuOwoJaW50IGlwaSA9IGxlZnQgKyByYW5kKCkgJSAocmlnaHQgLSBsZWZ0ICsgMSk7Cglzd2FwKGluW2lwaV0sIGluW3JpZ2h0XSk7CglpbnQgeCA9IGluW3JpZ2h0XTsKCWludCBtID0gbGVmdDsKCWZvciAoaW50IGkgPSBsZWZ0OyBpIDwgcmlnaHQ7IGkrKykKCQlpZiAoaW5baV0gPD0geCkKCQkJc3dhcChpbltpXSwgaW5bbSsrXSk7Cglzd2FwKGluW21dLCBpbltyaWdodF0pOwoJUXVpY2tTb3J0KGluLCBsZWZ0LCBtKTsKCVF1aWNrU29ydChpbiwgbSArIDEsIHJpZ2h0KTsKfQoKaW50IG1haW4oKQp7CiAgICB2ZWN0b3I8aW50PiBhID0gezUsIDQsIDMsIDIsIDEsIDEwLCA4LCAxNCwgNywgNiwgMTF9OwogICAgaW50IGxlZnQgPSAwOwogICAgaW50IHJpZ2h0ID0gYS5zaXplKCkgLSAxOwogICAgUXVpY2tTb3J0KGEsIGxlZnQsIHJpZ2h0KTsKICAgIGZvcihpbnQgeCA6IGEpCiAgICB7CiAgICAgICAgY291dCA8PCB4IDw8ICcgJzsKICAgIH0KfQ==