//1 1 4 2 1 3 2 4
class Solution {
public:
//left as pivot
int partition2(vector<int> &arr, int l, int r){
const int low_idx=l, pivot=arr.at(low_idx);
int c_idx=r, pivot_idx=r+1;
while(c_idx>l){
if(arr.at(c_idx)>pivot){
std::swap(arr.at(--pivot_idx), arr.at(c_idx));
}
c_idx--;
}
std::swap(arr.at(pivot_idx-1), arr.at(low_idx));
return pivot_idx-1;
}
//right as pivot
int partition1(vector<int> &arr, int l, int r){
const int high_idx=r, pivot=arr.at(high_idx);
int c_idx=l, pivot_idx=l-1;
while(c_idx<r){
if(arr.at(c_idx)<=pivot){