//累積和をいじくれば行ける. #include using namespace std; #define int long long int T; int N; void solve(){ cin>>N; int M = 0; vector A(N); for(int i = 0; i < N; i++) cin>>A[i]; vector rui(N); for(int i = 0; i < N; i++){ rui[i] = A[i]; if(i > 0) rui[i] += rui[i-1]; } int mx = A[N-1]; int mi = A[N-1]; int cnt = A[N-1]; int ans = 0; for(int i = N-3; i >= 0; i--){ ans = max(ans,max(abs(rui[i] + abs(mx) + abs(rui[N-1] - rui[i] - mx)),abs(rui[i] + abs(mi) + abs(rui[N-1] - rui[i] - mi)))); cnt += A[i+1]; mx = max(mx,cnt); mi = min(mi,cnt); } cout << ans << endl; } signed main(){ cin>>T; for(int i = 0; i < T; i++) solve(); }