#include<bits/stdc++.h>
#include<vector>
using namespace std;
void sort(vector<int>& arr) {
int n = arr.size();
int low = 0;
int mid = 0;
int high = n-1;
while(mid <= high) {
switch(arr[mid]) {
case 0:
swap(arr[low], arr[mid]);
low++;
mid++;
break;
case 1:
mid++;
break;
case 2:
swap(arr[mid], arr[high]);
high--;
break;
}
}
}
int main() {
vector<int> arr = {0, 1, 2, 2, 1, 0, 0, 2, 0, 1, 1, 0};
sort(arr);
for(int num: arr) {
cout<<num<<" ";
}
cout<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzb3J0KHZlY3RvcjxpbnQ+JiBhcnIpIHsKICAgIAogICAgaW50IG4gPSBhcnIuc2l6ZSgpOwogICAgCiAgICBpbnQgbG93ID0gMDsKICAgIGludCBtaWQgPSAwOwogICAgaW50IGhpZ2ggPSBuLTE7CiAgICAKICAgIHdoaWxlKG1pZCA8PSBoaWdoKSB7CiAgICAgICAgCiAgICAgICAgc3dpdGNoKGFyclttaWRdKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIHN3YXAoYXJyW2xvd10sIGFyclttaWRdKTsKICAgICAgICAgICAgICAgIGxvdysrOwogICAgICAgICAgICAgICAgbWlkKys7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgbWlkKys7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgc3dhcChhcnJbbWlkXSwgYXJyW2hpZ2hdKTsKICAgICAgICAgICAgICAgIGhpZ2gtLTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICAKICAgIHZlY3RvcjxpbnQ+IGFyciA9IHswLCAxLCAyLCAyLCAxLCAwLCAwLCAyLCAwLCAxLCAxLCAwfTsKICAgIAogICAgc29ydChhcnIpOwogICAgCiAgICBmb3IoaW50IG51bTogYXJyKSB7CiAgICAgICAgY291dDw8bnVtPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwogICAgCn0=