#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;
}
}
for(int i=0;i<ans.size();i++)
cout<<ans[i]<<" ";
//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;
}
}
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+MCl7CiAgICAgICAgICAgICAgICBhbnNbcG9zXSA9IGFbaV07CiAgICAgICAgICAgICAgICBhW2ldPTFlOTsKICAgICAgICAgICAgICAgIHBvcz1wb3MrMjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgYW5zW25lZ10gPSBhW2ldOwogICAgICAgICAgICAgICAgYVtpXT0tMWU5OwogICAgICAgICAgICAgICAgbmVnID0gbmVnKzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTA7aTxhbnMuc2l6ZSgpO2krKykKICAgICAgICBjb3V0PDxhbnNbaV08PCIgIjsKICAgICAgICAKICAgICAgICAvL2FkanVzdGluZyB0aGUgcmVtYWluaW5nIGVsZW1lbnRzCiAgICAgICAgaW50IGlkeD0tMTtpbnQgY291bnQ9MDsKICAgICAgICBmb3IoaW50IGk9MDtpPGFucy5zaXplKCk7aSsrKXsKICAgICAgICAJaWYoYW5zW2ldIT0xZTkgJiYgaWR4Pj0wKXsKICAgICAgICAJCXN3YXAoYW5zW2lkeF0sYW5zW2krMV0pOwogICAgICAgIAkJaWR4PWkrMTsKICAgICAgICAJfQogICAgICAgIAllbHNlewogICAgICAgIAkJaWR4PWk7CiAgICAgICAgCX0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIGFuczsKfQppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+YSA9IHsxLDIwLDIxLDIyLDIzLDMsMiw1LDQsLTExLC0xMn07Cgl2ZWN0b3I8aW50PnYgPSByZWFycmFuZ2VBcnJheShhKTsKCXJldHVybiAwOwp9