下为代码。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int nums[N];
void solve(){
int n;
cin >> n;
for(int i = 1; i <= n; i++) cin >> nums[i];
//输入数组
int l = 1,r = n,lsum = 0,rsum = 0,res = 0,be = 0;
//l为左坐标,r为右坐标,lsum为左边和,rsum为右边和
//res为移动次数
while(l <= r){
res++;
int tmp = 0;
while(l <= r && tmp <= be){
//当左边和大于右边和跳出
tmp += nums[l];
lsum += nums[l];
l++;
}
be = tmp;
//be此时为左边和
if(l > r) break;
res++;
tmp = 0;
while(l <= r && tmp <= be){
//当右边和大于左边和时跳出
tmp += nums[r];
rsum += nums[r];
r--;
}
be = tmp;
//be此时为右边和
}
cout << res << ' ' << lsum << ' ' << rsum << '\n';
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int q;
cin >> q;
while(q--)
solve();
return 0;
}