help me out what I am doing wrong??
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define F first
#define S second
void solve() {
int n;cin>>n;
ll arr[n];
vector<pair<ll,ll>> left(n);
vector<pair<ll,ll>> rigt(n);
for(int i=0;i<n;i++){
cin>>arr[i];
left[i].F = left[i].S = arr[i];
rigt[i].F = rigt[i].S = arr[i];
}
for(int i=1;i<n;i++){
left[i].F = max(left[i-1].F + left[i].F , left[i].F);
left[i].S = min(left[i-1].S + left[i].S , left[i].S);
}
for(int i=1;i<n;i++){
left[i].F = max(left[i-1].F , left[i].F);
left[i].S = min(left[i-1].S , left[i].S);
}
for(int i=n-2;i>=0;i--){
rigt[i].F = max(rigt[i+1].F + rigt[i].F , rigt[i].F);
rigt[i].S = min(rigt[i+1].S + rigt[i].S , rigt[i].S);
}
for(int i=n-2;i>=0;i--){
rigt[i].F = max(rigt[i+1].F , rigt[i].F);
rigt[i].S = min(rigt[i+1].S , rigt[i].S);
}
ll ans = INT_MIN;
for(int i=1;i<=n-2;i++){
ans = max({abs(left[i].F-rigt[i+1].S),abs(left[i-1].F-rigt[i].S),ans});
}
for(int i=1;i<=n-2;i++){
ans = max({abs(rigt[i].F-left[i-1].S), abs(rigt[i+1].F-left[i].S),ans});
}
cout << ans;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cout.precision(20);
int T = 1; cin >> T;
while (T--) {
solve();
if (T) cout << endl;
}
return 0;
}```