#include <bits/stdc++.h>
using namespace std;
vector<int> solve(vector<int> &arr){
vector<int> ans;
int p=-1;
int q=-1;
bool chk1=false;
bool chk2=false;
for(int i=0;i<arr.size();i++){
if(arr[i]>=0) chk1=true;
if(arr[i]<0) chk2=true;
if(i+1<arr.size() && arr[i+1]>=0 && arr[i]<0){
p=i;
q=i+1;
break;
}
}
if(chk1 || !chk2){
for(int i=0;i<arr.size();i++){
ans.push_back(arr[i]*arr[i]);
}
return ans;
}
if(!chk1 || chk2){
for(int i=arr.size()-1;i>=0;i--){
ans.push_back(arr[i]*arr[i]);
}
return ans;
}
// -6, -3, -1, 2, 4, 5
while(p>=0 && q<arr.size()){
if(abs(arr[p])<arr[q]){
ans.push_back(arr[p]*arr[p]);
p--;
}
else if(arr[q]>abs(arr[p])){
ans.push_back(arr[q]*arr[q]);
q++;
}
}
while(p>=0){
ans.push_back(arr[p]*arr[p]);
p--;
}
while(q<arr.size()){
ans.push_back(arr[q]*arr[q]);
q++;
}
return ans;
}
int main() {
vector<int> arr={ -6, -3, -1, 2, 4, 5};
vector<int> ans= solve(arr);
for(int &x:ans){
cout<<x<<" ";
}
cout<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBzb2x2ZSh2ZWN0b3I8aW50PiAmYXJyKXsKICAKICB2ZWN0b3I8aW50PiBhbnM7CiAgCiAgaW50IHA9LTE7CiAgaW50IHE9LTE7CiAgCiAgYm9vbCBjaGsxPWZhbHNlOwogIGJvb2wgY2hrMj1mYWxzZTsKICBmb3IoaW50IGk9MDtpPGFyci5zaXplKCk7aSsrKXsKICAgIAogICAgaWYoYXJyW2ldPj0wKSBjaGsxPXRydWU7CiAgICBpZihhcnJbaV08MCkgY2hrMj10cnVlOwogICAgCiAgICBpZihpKzE8YXJyLnNpemUoKSAmJiBhcnJbaSsxXT49MCAmJiBhcnJbaV08MCl7CiAgICAgIHA9aTsKICAgICAgcT1pKzE7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICAKICBpZihjaGsxIHx8ICFjaGsyKXsKICAgIGZvcihpbnQgaT0wO2k8YXJyLnNpemUoKTtpKyspewogICAgICBhbnMucHVzaF9iYWNrKGFycltpXSphcnJbaV0pOwogICAgfQogICAgcmV0dXJuIGFuczsKICB9CiAgCiAgaWYoIWNoazEgfHwgY2hrMil7CiAgICBmb3IoaW50IGk9YXJyLnNpemUoKS0xO2k+PTA7aS0tKXsKICAgICAgYW5zLnB1c2hfYmFjayhhcnJbaV0qYXJyW2ldKTsKICAgIH0KICAgIHJldHVybiBhbnM7CiAgfQogIAogIC8vIC02LCAtMywgLTEsIDIsIDQsIDUKICB3aGlsZShwPj0wICYmIHE8YXJyLnNpemUoKSl7CiAgICBpZihhYnMoYXJyW3BdKTxhcnJbcV0pewogICAgICBhbnMucHVzaF9iYWNrKGFycltwXSphcnJbcF0pOwogICAgICBwLS07CiAgICB9CiAgICBlbHNlIGlmKGFycltxXT5hYnMoYXJyW3BdKSl7CiAgICAgIGFucy5wdXNoX2JhY2soYXJyW3FdKmFycltxXSk7CiAgICAgIHErKzsKICAgIH0KICAgIAogIH0KICAKICB3aGlsZShwPj0wKXsKICAgICBhbnMucHVzaF9iYWNrKGFycltwXSphcnJbcF0pOwogICAgICBwLS07CiAgfQogIAogIHdoaWxlKHE8YXJyLnNpemUoKSl7CiAgICAgYW5zLnB1c2hfYmFjayhhcnJbcV0qYXJyW3FdKTsKICAgICAgcSsrOwogIH0KICAKICByZXR1cm4gYW5zOwp9CiAgCgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IGFycj17IC02LCAtMywgLTEsIDIsIDQsIDV9OwoJCgl2ZWN0b3I8aW50PiBhbnM9IHNvbHZlKGFycik7CgkKCWZvcihpbnQgJng6YW5zKXsKCQljb3V0PDx4PDwiICI7Cgl9Cgljb3V0PDxlbmRsOwp9