#include <bits/stdc++.h>
using namespace std;
vector<int> rearrangeArray(vector<int>& a) {
int n = a.size();
vector<int>ans(2*n+1,1e9);
int pos=0,neg=1;
for(int i=0;i<n;i++){
if(a[i]>0){
ans[pos] = a[i];
a[i]=1e9;
pos=pos+2;
}
else{
ans[neg] = a[i];
a[i]=-1e9;
neg = neg+2;
}
}
//adjusting the remaining elements
int idx=-1;int count=0;
for(int i=0;i<ans.size();i++){
if(ans[i]!=1e9 && idx>=0){
swap(ans[idx],ans[i+1]);
idx=i+1;
}
else{
idx=i;
}
}
for(int i=0;i<ans.size();i++)
cout<<ans[i]<<" ";
return ans;
}
int main() {
vector<int>a = {1,20,21,22,23,3,2,5,4,-11,-12};
vector<int>v = rearrangeArray(a);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiByZWFycmFuZ2VBcnJheSh2ZWN0b3I8aW50PiYgYSkgewogICAgICAgIGludCBuID0gYS5zaXplKCk7CiAgICAgICAgdmVjdG9yPGludD5hbnMoMipuKzEsMWU5KTsKICAgICAgICBpbnQgcG9zPTAsbmVnPTE7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGlmKGFbaV0+MCl7CiAgICAgICAgICAgICAgICBhbnNbcG9zXSA9IGFbaV07CiAgICAgICAgICAgICAgICBhW2ldPTFlOTsKICAgICAgICAgICAgICAgIHBvcz1wb3MrMjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgYW5zW25lZ10gPSBhW2ldOwogICAgICAgICAgICAgICAgYVtpXT0tMWU5OwogICAgICAgICAgICAgICAgbmVnID0gbmVnKzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9hZGp1c3RpbmcgdGhlIHJlbWFpbmluZyBlbGVtZW50cwogICAgICAgIGludCBpZHg9LTE7aW50IGNvdW50PTA7CiAgICAgICAgZm9yKGludCBpPTA7aTxhbnMuc2l6ZSgpO2krKyl7CiAgICAgICAgCWlmKGFuc1tpXSE9MWU5ICYmIGlkeD49MCl7CiAgICAgICAgCQlzd2FwKGFuc1tpZHhdLGFuc1tpKzFdKTsKICAgICAgICAJCWlkeD1pKzE7CiAgICAgICAgCX0KICAgICAgICAJZWxzZXsKICAgICAgICAJCWlkeD1pOwogICAgICAgIAl9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8YW5zLnNpemUoKTtpKyspCiAgICAgICAgY291dDw8YW5zW2ldPDwiICI7CiAgICAgICAgCiAgICAgICAgcmV0dXJuIGFuczsKfQppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+YSA9IHsxLDIwLDIxLDIyLDIzLDMsMiw1LDQsLTExLC0xMn07Cgl2ZWN0b3I8aW50PnYgPSByZWFycmFuZ2VBcnJheShhKTsKCXJldHVybiAwOwp9