#include <bits/stdc++.h> // Damn ....
using namespace std;
#define int long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(),v.rend()
#define pq_min priority_queue<int, vector<int>, greater<int>>
typedef long long ll;
typedef long double ld;
const int MOD = 1e9 + 7;
const ll OO = 2e18;
const int oo = 1e9;
const int sz = 1e5+5;
////////////////////////////////////////////////////////////////////////////////////////
int n; int arr[105]; int dp[105];
int go(int i) {
if (i >= n) return 0;
if (dp[i] != -1)
return dp[i];
int a= go(i+1)+arr[i];
int b= go(i+1)-arr[i];
int mn =OO;
mn = min({mn,abs(a),abs(b)});
return dp[i] = mn;
}
//////////////////////////////////////////////////////////////////////////////////////
void _3OMDA() {
cin>>n;
for (int i = 0; i < n; i++) cin>>arr[i];
memset(dp,-1,sizeof(dp));
cout << go(0) << endl;
}
/////////////////////////////////////////////////////////////////////////////////////
signed main() {
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int t = 1;
cin >> t;
for (int i = 0; i < t; i++) {
_3OMDA();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+ICAvLyBEYW1uIC4uLi4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgYWxsKHYpIHYuYmVnaW4oKSwgdi5lbmQoKQojZGVmaW5lIHJhbGwodikgdi5yYmVnaW4oKSx2LnJlbmQoKQojZGVmaW5lIHBxX21pbiBwcmlvcml0eV9xdWV1ZTxpbnQsIHZlY3RvcjxpbnQ+LCBncmVhdGVyPGludD4+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgbGwgT08gPSAyZTE4Owpjb25zdCBpbnQgb28gPSAxZTk7CmNvbnN0IGludCBzeiA9IDFlNSs1OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmludCBuOyBpbnQgYXJyWzEwNV07IGludCBkcFsxMDVdOwppbnQgZ28oaW50IGkpIHsKICAgIGlmIChpID49IG4pIHJldHVybiAwOwogICAgaWYgKGRwW2ldICE9IC0xKQogICAgICAgIHJldHVybiBkcFtpXTsKICAgIGludCBhPSBnbyhpKzEpK2FycltpXTsKICAgIGludCBiPSBnbyhpKzEpLWFycltpXTsKICAgIGludCBtbiA9T087CiAgICBtbiA9IG1pbih7bW4sYWJzKGEpLGFicyhiKX0pOwogICAgcmV0dXJuIGRwW2ldID0gbW47Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8Kdm9pZCBfM09NREEoKSB7CiAgICBjaW4+Pm47CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luPj5hcnJbaV07CiAgICBtZW1zZXQoZHAsLTEsc2l6ZW9mKGRwKSk7CiAgICBjb3V0IDw8IGdvKDApIDw8IGVuZGw7Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpzaWduZWQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICAvL2ZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHQ7IGkrKykgewogICAgICAgIF8zT01EQSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=