#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
#define print1(a) for(auto x : a) cout << x.F << " " << x.S << endl
#define print2(a,x,y) for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl
#define printInf(a) for(auto x : a) { if(x==INT32_MAX) cerr << "∞ "; else if(x==INT32_MIN) cerr << "-∞ "; else cerr << x << " "; } cerr << endl
#ifndef ONLINE_JUDGE
#endif
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
vector<int> a;
void consistency(int n){
int ones = 0;
for(int i=0; i<n; i++) if(a[i] == 1) ones++;
if(ones==0){
cout << -1 << endl;
return;
}
int s= 0, e =0;
int ans = n+1, zeroes = 0;
while(e<n){
if(a[e] == 0) zeroes++;
if(e-s+1<ones){
e++;
}
else{
ans = min(ans, zeroes);
if(a[s] == 0) zeroes--;
s++;
e++;
}
}
if(ans==n+1){
cout << -1 << endl;
return;
}
cout << ans << endl;
}
void solve() {
int n;
cin>>n;
a.resize(n+1);
for(int i=1; i<=n; i++) cin >> a[i];
consistency(n) ;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
// #ifndef ONLINE_JUDGE
// freopen("inputf.txt", "r", stdin);
// freopen("outputf.txt", "w", stdout);
// #endif
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAojZGVmaW5lIHByaW50MShhKSAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeC5GIDw8ICIgIiA8PCB4LlMgPDwgZW5kbAojZGVmaW5lIHByaW50MihhLHgseSkgICAgZm9yKGludCBpID0geDsgaSA8IHk7IGkrKykgY291dDw8IGFbaV08PCAiICI7IGNvdXQgPDwgZW5kbAojZGVmaW5lIHByaW50SW5mKGEpICAgICAgZm9yKGF1dG8geCA6IGEpIHsgaWYoeD09SU5UMzJfTUFYKSBjZXJyIDw8ICLiiJ4gIjsgZWxzZSBpZih4PT1JTlQzMl9NSU4pIGNlcnIgPDwgIi3iiJ4gIjsgZWxzZSBjZXJyIDw8IHggPDwgIiAiOyB9IGNlcnIgPDwgZW5kbAojaWZuZGVmIE9OTElORV9KVURHRQojZW5kaWYKaW5saW5lIGludCBwb3dlcihpbnQgYSwgaW50IGIpIHsKICAgIGludCB4ID0gMTsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSB4ICo9IGE7CiAgICAgICAgYSAqPSBhOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4geDsKfQoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgovL18gKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogU1RBUlQgQmVsb3cgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCgoKdmVjdG9yPGludD4gYTsKdm9pZCBjb25zaXN0ZW5jeShpbnQgbil7CgoJaW50IG9uZXMgPSAwOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKSBpZihhW2ldID09IDEpIG9uZXMrKzsKCWlmKG9uZXM9PTApewoJCWNvdXQgPDwgLTEgPDwgZW5kbDsKCQlyZXR1cm47Cgl9CgkKCWludCBzPSAwLCBlID0wOwoJaW50IGFucyA9IG4rMSwgemVyb2VzID0gMDsKCXdoaWxlKGU8bil7CgkgICAgaWYoYVtlXSA9PSAwKSB6ZXJvZXMrKzsKCSAgICBpZihlLXMrMTxvbmVzKXsKCSAgICAgICAgZSsrOwoJICAgIH0KCSAgICBlbHNlewoJICAgICAgICBhbnMgPSBtaW4oYW5zLCB6ZXJvZXMpOwoJICAgICAgICBpZihhW3NdID09IDApIHplcm9lcy0tOwoJICAgICAgICBzKys7CgkgICAgICAgIGUrKzsKCSAgICB9Cgl9CglpZihhbnM9PW4rMSl7CgkJY291dCA8PCAtMSA8PCBlbmRsOwoJCXJldHVybjsKCX0KCWNvdXQgPDwgYW5zIDw8IGVuZGw7Cn0KCQoKdm9pZCBzb2x2ZSgpIHsKICAgIAogICAgCiAgICBpbnQgbjsKICAgIGNpbj4+bjsKICAgIGEucmVzaXplKG4rMSk7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGNvbnNpc3RlbmN5KG4pIDsKCgp9CgoKCgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgLy8gI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIC8vIGZyZW9wZW4oImlucHV0Zi50eHQiLCAiciIsIHN0ZGluKTsKICAgIC8vIGZyZW9wZW4oIm91dHB1dGYudHh0IiwgInciLCBzdGRvdXQpOwogICAgLy8gI2VuZGlmCgogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==