class Solution {
public:
void merging(int i,vector &nums)
{
vector left;
vector right;
for(int j=i-1;j>=0;j--)
{
left.push_back(-nums[j]);
}
for(int j=i;j<nums.size();j++)
{
right.push_back(nums[j]);
}
int n1=left.size();
int n2=right.size();
int l=0,r=0,k=0;
while(l<n1 && r<n2)
{
if(left[l]>=right[r])
{
nums[k]=right[r];
r++,k++;
}
if(left[l]<right[r])
{
nums[k]=left[l];
l++,k++;
}
}
while(l<n1)
{
nums[k]=left[l];
l++,k++;
}
while(r<n2)
{
nums[k]=right[r];
r++,k++;
}
}
vector sortedSquares(vector& nums) {
int i=0;
while(nums[i]<0 && i<nums.size())
{
i++;
}
cout<<i<<endl;
this->merging(i,nums);
for(int j=0;j<nums.size();j++)
{
nums[j]=nums[j]*nums[j];
}
return nums;
}};