#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void partition(vector<int>& A) {
int n = A.size(), start = 1, end = n-1, p = A[0];
while(start < end) {
while(A[start] <= p)
start++;
while(A[end] > p)
end--;
if(start < end) {
int temp = A[start];
A[start] = A[end];
A[end] = temp;
}
}
if(A[start] > p)
start = start - 1;
int temp = A[0];
A[0] = A[start];
A[start] = temp;
}
int main() {
// your code goes here
vector<int> num = {6, 11, 2, 1, 8, 3};
partition(num);
for(int data : num)
cout << data << " " ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgp2b2lkIHBhcnRpdGlvbih2ZWN0b3I8aW50PiYgQSkgewoJaW50IG4gPSBBLnNpemUoKSwgc3RhcnQgPSAxLCBlbmQgPSBuLTEsIHAgPSBBWzBdOwoJd2hpbGUoc3RhcnQgPCBlbmQpIHsKCQl3aGlsZShBW3N0YXJ0XSA8PSBwKQoJCQlzdGFydCsrOwoJCXdoaWxlKEFbZW5kXSA+IHApCgkJCWVuZC0tOwoJCWlmKHN0YXJ0IDwgZW5kKSB7CgkJaW50IHRlbXAgPSBBW3N0YXJ0XTsKCQlBW3N0YXJ0XSA9IEFbZW5kXTsKCQlBW2VuZF0gPSB0ZW1wOwoJCX0KCX0KCWlmKEFbc3RhcnRdID4gcCkKCQlzdGFydCA9IHN0YXJ0IC0gMTsKCWludCB0ZW1wID0gQVswXTsKCUFbMF0gPSBBW3N0YXJ0XTsKCUFbc3RhcnRdID0gdGVtcDsKfQoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJdmVjdG9yPGludD4gbnVtID0gezYsIDExLCAyLCAxLCA4LCAzfTsKCXBhcnRpdGlvbihudW0pOwoJZm9yKGludCBkYXRhIDogbnVtKQoJCWNvdXQgPDwgZGF0YSA8PCAiICIgOwoJcmV0dXJuIDA7Cn0=