#include <bits/stdc++.h>
using namespace std;
long long int mod = 1000000007;
inline long long int gcd(long long int a, long long int b) {
  return (b == 0) ? a : gcd(b, a % b);
}
inline long long int lcm(long long int a, long long int b) {
  return (a * b) / gcd(a, b);
}
inline long long int mymod(long long int A, long long int M) {
  return ((A % M) + M) % M;
}
template <class type>
type power(type x, long long int n) {
  type temp;
  long long int y = n;
  if (y == 0) return 1;
  temp = power(x, y / 2);
  return ((y % 2) ? ((y > 0) ? x * temp * temp : (temp * temp) / x)
                  : temp * temp);
}
template <typename Arg, typename... Args>
void db(Arg&& arg, Args&&... args) {
  cout << std::forward<Arg>(arg);
  using expander = long long int[];
  (void)expander{0, (void(cout << ',' << std::forward<Args>(args)), 0)...};
  cout << "\n";
}
void c_p_c() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
inline void solve() {
  long long int n;
  cin >> n;
  vector<long long int> v(n);
  for (long long int i = 0; i <= n - 1; i++) {
    cin >> v[i];
  }
  long long int m = 1;
  long long int i = 1, j = n - 1;
  long long int prev = v[0];
  long long int a = v[0], b = 0;
  while (i <= j) {
    long long int sum = 0;
    while (sum <= prev and j >= i) {
      sum += v[j];
      j--;
    }
    m++;
    b += sum;
    if (i > j) {
      break;
    }
    prev = sum;
    sum = 0;
    while (sum <= prev and i <= j) {
      sum += v[i];
      i++;
    }
    m++;
    a += sum;
    if (i > j) {
      break;
    }
    prev = sum;
  }
  cout << m << " " << a << " " << b << "\n";
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  c_p_c();
  long long int t;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
