Temperature Balance in Starters 167 help

include <bits/stdc++.h>
using namespace std;

int main() {
int t;
cin>>t;
while(t–)
{
int n;
cin>>n;
vector v;
int prev1=0;int prev2=0;
int pos1=0;int pos2=0;
for(int i=0;i<n;i++)
{
int m;
cin>>m;
v.push_back(m);
}
int ans=0;
int sum=0;
if(n%2==0)
{
for(int i=0;i<n/2;i++)
{
if(v[i]!=0)
{

                ans+=abs(prev1*(i-pos1));
                prev1=prev1+v[i];
                pos1=i;
            
        }
        sum+=v[i];
    }
    ans+=prev1*((n/2)-1-pos1);
    //cout<<ans<<endl;
    for(int i=n-1;i>=n/2;i--)
    {
        if(v[i]!=0)
        {
            
                ans+=abs(prev2*(pos2-i));
                prev2=prev2+v[i];
                pos2=i;
                //cout<<"here"<<ans<<endl;
            
        }
    }
    ans+=abs(prev2*(pos2-(n/2)));
    cout<<ans+abs(sum)<<endl;
}
else
{
    for(int i=0;i<(n/2);i++)
    {
        if(v[i]!=0)
        {
            
                ans+=abs(prev1*(i-pos1));
                prev1=prev1+v[i];
                pos1=i;
              //  cout<<"here1 "<<ans<<endl;
            
        }
        sum+=v[i];
    }
    ans+=prev1*((n/2)-1-pos1);
   // cout<<"here3 "<<ans<<endl;
    //cout<<ans<<endl;
    for(int i=n-1;i>=(n/2)+1;i--)
    {
        if(v[i]!=0)
        {
            
                ans+=abs(prev2*(pos2-i));
                prev2=prev2+v[i];
                pos2=i;
               // cout<<"here2 "<<ans<<endl;
            
        }
    }
    ans+=abs(prev2*(pos2-(n/2)+1));
   // cout<<"here4 "<<ans<<endl;
    
    cout<<ans+abs(sum)+(abs(sum)-abs(v[(n/2)]))<<endl;
}

}
}
this is my code. Can someone tell whats wrong with my logic.