/*
2024 cùng những điều ước.
*/
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(x) (int)(x.size())
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
typedef long long ll;
typedef pair<int, int> ii;
const ll LINF = 1e18;
const int INF = 1e9;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template<typename T>
bool maximize(T& a, const T& b) {
if (b < a) return false;
a = b;
return true;
}
template<typename T>
bool minimize(T& a, const T& b) {
if (a < b) return false;
a = b;
return true;
}
// Bài này để ý là w[i] > 0 nên mảng tổng tiền tố pref[] của w[] sẽ tăng nghiêm ngặt (>)
// => Duyệt qua số kẹo mà Bob có thể ăn
// sau đó dùng tìm kiếm nhị phân để check có tồn tại vị trí pos sao cho pref[pos] = Bob_sum
const int N = 2e5 + 5;
int n;
int w[N];
int pref[N];
void solve() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> w[i];
pref[i] = pref[i - 1] + w[i];
}
int best = 0, Bob_sum = 0;
for (int i = n; i >= 1; i--) {
Bob_sum += w[i];
int pos = lower_bound(pref + 1, pref + i, Bob_sum) - pref;
if (pos < i && pref[pos] == Bob_sum) maximize(best, (n - i + 1) + pos);
}
cout << best << '\n';
}
signed main() {
ios::sync_with_stdio(0); cin.tie(0);
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
LyoKICAyMDI0IGPDuW5nIG5o4buvbmcgxJFp4buBdSDGsOG7m2MuCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsgCgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHN6KHgpIChpbnQpKHguc2l6ZSgpKQojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgcmFsbCh4KSAoeCkucmJlZ2luKCksICh4KS5yZW5kKCkKCnR5cGVkZWYgbG9uZyBsb25nIGxsOyAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgCgpjb25zdCBsbCBMSU5GID0gMWUxODsgCmNvbnN0IGludCBJTkYgPSAxZTk7CgptdDE5OTM3IHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOyAKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CmJvb2wgbWF4aW1pemUoVCYgYSwgY29uc3QgVCYgYikgewoJaWYgKGIgPCBhKSByZXR1cm4gZmFsc2U7IAoJYSA9IGI7IAoJcmV0dXJuIHRydWU7IAp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpib29sIG1pbmltaXplKFQmIGEsIGNvbnN0IFQmIGIpIHsKCWlmIChhIDwgYikgcmV0dXJuIGZhbHNlOwoJYSA9IGI7IAoJcmV0dXJuIHRydWU7IAp9CgovLyBCw6BpIG7DoHkgxJHhu4Mgw70gbMOgIHdbaV0gPiAwIG7Dqm4gbeG6o25nIHThu5VuZyB0aeG7gW4gdOG7kSBwcmVmW10gY+G7p2Egd1tdIHPhur0gdMSDbmcgbmdoacOqbSBuZ+G6t3QgKD4pIAovLyA9PiBEdXnhu4d0IHF1YSBz4buRIGvhurlvIG3DoCBCb2IgY8OzIHRo4buDIMSDbiAKLy8JCXNhdSDEkcOzIGTDuW5nIHTDrG0ga2nhur9tIG5o4buLIHBow6JuIMSR4buDIGNoZWNrIGPDsyB04buTbiB04bqhaSB24buLIHRyw60gcG9zIHNhbyBjaG8gcHJlZltwb3NdID0gQm9iX3N1bSAKCmNvbnN0IGludCBOID0gMmU1ICsgNTsgICAKCmludCBuOyAgCmludCB3W05dOyAgCmludCBwcmVmW05dOyAgCgp2b2lkIHNvbHZlKCkgewoJY2luID4+IG47IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJY2luID4+IHdbaV07ICAKCQlwcmVmW2ldID0gcHJlZltpIC0gMV0gKyB3W2ldOyAgIAoJfQkKCglpbnQgYmVzdCA9IDAsIEJvYl9zdW0gPSAwOyAgCglmb3IgKGludCBpID0gbjsgaSA+PSAxOyBpLS0pIHsKCQlCb2Jfc3VtICs9IHdbaV07IAoJCWludCBwb3MgPSBsb3dlcl9ib3VuZChwcmVmICsgMSwgcHJlZiArIGksIEJvYl9zdW0pIC0gcHJlZjsKCQlpZiAocG9zIDwgaSAmJiBwcmVmW3Bvc10gPT0gQm9iX3N1bSkgbWF4aW1pemUoYmVzdCwgKG4gLSBpICsgMSkgKyBwb3MpOyAgCgl9CgoJY291dCA8PCBiZXN0IDw8ICdcbic7IAp9CgpzaWduZWQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAKCWludCB0OyAKCWNpbiA+PiB0OyAKCgl3aGlsZSAodC0tKSB7CgkJc29sdmUoKTsgCgl9CgkKCXJldHVybiAwOyAgCn0=