Help me in solving P4149 problem

My issue

what is the wrong in this?

My code

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

int main() {
	// your code goes here
   int t;
   cin>>t;
   while(t--){
       int n;
       cin>>n;
       vector<int>arr;
       for(int i=0;i<n;i++){
           int x;
           cin>>x;
           arr.push_back(x);
          
       }
       
       int ans=1e8,cnt=0;
       long long sum=0;
       bool flag=false;
       
       for(int i=0;i<n;i++){
            if(arr[i]<0){
               ans=min(ans,abs(arr[i])); 
            }
            if(arr[i]<0){
                cnt++;
                
            }
            if(arr[i]==0){
                flag=true;
            }
            
            sum+=abs(arr[i]);
       }
     
       if(cnt%2==1 && flag==false ){
          sum=sum-2*ans;
       }
       cout<<sum<<endl;
      
   }
}

Problem Link: Maximise Sum Practice Coding Problem