/*
https://w...content-available-to-author-only...f.com/problems/MMSUM
*/
#include<iostream>
#include<cstdio>
#include<vector>
#include<climits>
#define lli long long int
#define scan(z) scanf("%lld",&z);
#define print(z) printf("%lld\n",z);
using namespace std;
lli maxSubTreeFor(vector<lli> &a, int l,int h,lli curr_sum,lli max_so_far) {
lli max_remd=LONG_LONG_MIN;
for(int i=l;i<=h;i++) {
if(a[i]<0) {
lli cs=curr_sum;
lli msf=max_so_far;
for(int j=i+1;j<=h;j++) {
if(a[j]>cs+a[j])
break;
else
cs=cs+a[j];
msf=max(cs,msf);
}
max_remd=max(max_remd,msf);
}
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
}
return max(max_remd,max_so_far);
}
lli maxSubTreeLeftRight(vector<lli> &a, int l,int h,lli curr_sum,lli max_so_far) {
lli max_remd=LONG_LONG_MIN;
for(int i=l;i<=h;i++) {
if(a[i]<0) {
lli cs=curr_sum;
lli msf=max_so_far;
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
for(i+=1;i<=h;i++) {
if(a[i]>cs+a[i])
break;
else
cs=cs+a[i];
msf=max(cs,msf);
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
}
max_remd=max(max_remd,msf);
//cout<<max_remd<<" "<<max_so_far<<" asf\n";
}
if(i>h)
break;
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
}
lli left=max(max_remd,max_so_far);
curr_sum=max_so_far=a[h];
for(int i=h-1;i>=l-1;i--) {
if(a[i]<0) {
lli cs=curr_sum;
lli msf=max_so_far;
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
for(i-=1;i>=l-1;i--) {
if(a[i]>cs+a[i])
break;
else
cs=cs+a[i];
msf=max(cs,msf);
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
}
max_remd=max(max_remd,msf);
//cout<<max_remd<<" "<<max_so_far<<" asf\n";
}
if(i<l-1)
break;
curr_sum=max(a[i],curr_sum+a[i]);
max_so_far=max(max_so_far,curr_sum);
}
return max(left,max(max_remd,max_so_far));
}
lli maxSubArray(vector<lli> &a, int l,int h) {
if(l>h)
return 0;
lli curr_sum=a[l],max_so_far=a[l];
int s=0,ns=0,e=0;
lli m=0,mm=min(a[l],(lli)0);
for(int i=l+1;i<=h;i++) {
if(a[i] > curr_sum+a[i]) {
ns=i;
mm=0;
curr_sum=a[i];
}
else {
mm=min(mm,a[i]);
curr_sum=curr_sum+a[i];
}
if(curr_sum > max_so_far) {
m=min(mm,m);
s=ns;
e=i;
max_so_far=curr_sum;
}
}
lli left=max_so_far;
lli sum=max_so_far;
for(int i=s-2;i>=l;i--) {
sum+=a[i];
if(sum>left)
left=sum;
}
lli right=max_so_far;
sum=max_so_far;
for(int i=e+2;i<=h;i++) {
sum+=a[i];
if(sum>right)
right=sum;
}
lli mid=max_so_far;
if(s<e)
mid-=m;
lli res=max(mid,max(max_so_far,max(left,right)));
//cout<<"start "<<s<<" "<<e<<" "<<m<<"\n";
return res;
}
/*
8
9
10 10 -10 10 12 20 -10 10 5
8
1 -100 -10 8 4 -3 2 6
8
10 -100 10 7 -2 5 -10 6
8
6 -10 5 -2 7 10 -100 10
5
1 -2 3 -2 5
2
-1 -2
7
1 -2 7 -2 5 -10 6
7
1 -2 3 -2 5 -10 6
*/
int main() {
int t;
cin>>t;
//cout<<t;
int n;
while(t--) {
//cout<<"loop in "<<t;
cin>>n;
vector<lli> a(n);
lli x;
for(int i=0;i<n;i++) {
cin>>x;
a[i]=x;
}
/*vector<int> mids;
//mids.push_back(0);
lli m=0;
for(int i=1;i<n;i++) {
if(a[i]==m)
mids.push_back(i);
else if(a[i]<m) {
//m=a[i];
mids.clear();
mids.push_back(i);
}
}
lli ret=maxsubarray(a,n);
int mil=mids.size();
for(int i=0;i<mil;i++) {
int index=mids[i];
lli val=a[index];
int start=0,end=0;
a.erase(a.begin()+index);
ret=max(ret,maxsubarray(a,n-1),start,end);
if(index>=start && index<=end)
a.insert(a.begin()+index,val);
}*/
lli ret=maxSubArray(a,0,n-1);
//lli ret=maxSubTreeFor(a,1,n-1,a[0],a[0]);
//lli ret=maxSubTreeLeftRight(a,1,n-1,a[0],a[0]);
//print(ret);
cout<<ret<<endl;
//cout<<"loop out "<<t;
}
}
LyoKaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5mLmNvbS9wcm9ibGVtcy9NTVNVTQoqLwoKI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxjbGltaXRzPgoKI2RlZmluZSBsbGkgbG9uZyBsb25nIGludAojZGVmaW5lIHNjYW4oeikgc2NhbmYoIiVsbGQiLCZ6KTsKI2RlZmluZSBwcmludCh6KSBwcmludGYoIiVsbGRcbiIseik7Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGxpIG1heFN1YlRyZWVGb3IodmVjdG9yPGxsaT4gJmEsIGludCBsLGludCBoLGxsaSBjdXJyX3N1bSxsbGkgbWF4X3NvX2ZhcikgewogICAgbGxpIG1heF9yZW1kPUxPTkdfTE9OR19NSU47CiAgICBmb3IoaW50IGk9bDtpPD1oO2krKykgewogICAgICAgIGlmKGFbaV08MCkgewogICAgICAgICAgICBsbGkgY3M9Y3Vycl9zdW07CiAgICAgICAgICAgIGxsaSBtc2Y9bWF4X3NvX2ZhcjsKICAgICAgICAgICAgZm9yKGludCBqPWkrMTtqPD1oO2orKykgewogICAgICAgICAgICAgICAgaWYoYVtqXT5jcythW2pdKQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGNzPWNzK2Fbal07CiAgICAgICAgICAgICAgICBtc2Y9bWF4KGNzLG1zZik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbWF4X3JlbWQ9bWF4KG1heF9yZW1kLG1zZik7CiAgICAgICAgfQoKICAgICAgICBjdXJyX3N1bT1tYXgoYVtpXSxjdXJyX3N1bSthW2ldKTsKICAgICAgICBtYXhfc29fZmFyPW1heChtYXhfc29fZmFyLGN1cnJfc3VtKTsKICAgIH0KCiAgICByZXR1cm4gbWF4KG1heF9yZW1kLG1heF9zb19mYXIpOwp9CgpsbGkgbWF4U3ViVHJlZUxlZnRSaWdodCh2ZWN0b3I8bGxpPiAmYSwgaW50IGwsaW50IGgsbGxpIGN1cnJfc3VtLGxsaSBtYXhfc29fZmFyKSB7CiAgICBsbGkgbWF4X3JlbWQ9TE9OR19MT05HX01JTjsKICAgIGZvcihpbnQgaT1sO2k8PWg7aSsrKSB7CiAgICAgICAgaWYoYVtpXTwwKSB7CiAgICAgICAgICAgIGxsaSBjcz1jdXJyX3N1bTsKICAgICAgICAgICAgbGxpIG1zZj1tYXhfc29fZmFyOwoKICAgICAgICAgICAgY3Vycl9zdW09bWF4KGFbaV0sY3Vycl9zdW0rYVtpXSk7CiAgICAgICAgICAgIG1heF9zb19mYXI9bWF4KG1heF9zb19mYXIsY3Vycl9zdW0pOwoKICAgICAgICAgICAgZm9yKGkrPTE7aTw9aDtpKyspIHsKICAgICAgICAgICAgICAgIGlmKGFbaV0+Y3MrYVtpXSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICBjcz1jcythW2ldOwogICAgICAgICAgICAgICAgbXNmPW1heChjcyxtc2YpOwoKICAgICAgICAgICAgICAgIGN1cnJfc3VtPW1heChhW2ldLGN1cnJfc3VtK2FbaV0pOwogICAgICAgICAgICAgICAgbWF4X3NvX2Zhcj1tYXgobWF4X3NvX2ZhcixjdXJyX3N1bSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbWF4X3JlbWQ9bWF4KG1heF9yZW1kLG1zZik7CiAgICAgICAgICAgIC8vY291dDw8bWF4X3JlbWQ8PCIgIjw8bWF4X3NvX2Zhcjw8IiBhc2ZcbiI7CiAgICAgICAgfQoKICAgICAgICBpZihpPmgpCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjdXJyX3N1bT1tYXgoYVtpXSxjdXJyX3N1bSthW2ldKTsKICAgICAgICBtYXhfc29fZmFyPW1heChtYXhfc29fZmFyLGN1cnJfc3VtKTsKICAgIH0KCiAgICBsbGkgbGVmdD1tYXgobWF4X3JlbWQsbWF4X3NvX2Zhcik7CiAgICBjdXJyX3N1bT1tYXhfc29fZmFyPWFbaF07CiAgICBmb3IoaW50IGk9aC0xO2k+PWwtMTtpLS0pIHsKICAgICAgICBpZihhW2ldPDApIHsKICAgICAgICAgICAgbGxpIGNzPWN1cnJfc3VtOwogICAgICAgICAgICBsbGkgbXNmPW1heF9zb19mYXI7CgogICAgICAgICAgICBjdXJyX3N1bT1tYXgoYVtpXSxjdXJyX3N1bSthW2ldKTsKICAgICAgICAgICAgbWF4X3NvX2Zhcj1tYXgobWF4X3NvX2ZhcixjdXJyX3N1bSk7CgogICAgICAgICAgICBmb3IoaS09MTtpPj1sLTE7aS0tKSB7CiAgICAgICAgICAgICAgICBpZihhW2ldPmNzK2FbaV0pCiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgY3M9Y3MrYVtpXTsKICAgICAgICAgICAgICAgIG1zZj1tYXgoY3MsbXNmKTsKCiAgICAgICAgICAgICAgICBjdXJyX3N1bT1tYXgoYVtpXSxjdXJyX3N1bSthW2ldKTsKICAgICAgICAgICAgICAgIG1heF9zb19mYXI9bWF4KG1heF9zb19mYXIsY3Vycl9zdW0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1heF9yZW1kPW1heChtYXhfcmVtZCxtc2YpOwogICAgICAgICAgICAvL2NvdXQ8PG1heF9yZW1kPDwiICI8PG1heF9zb19mYXI8PCIgYXNmXG4iOwogICAgICAgIH0KCiAgICAgICAgaWYoaTxsLTEpCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjdXJyX3N1bT1tYXgoYVtpXSxjdXJyX3N1bSthW2ldKTsKICAgICAgICBtYXhfc29fZmFyPW1heChtYXhfc29fZmFyLGN1cnJfc3VtKTsKICAgIH0KCgogICAgcmV0dXJuIG1heChsZWZ0LG1heChtYXhfcmVtZCxtYXhfc29fZmFyKSk7Cn0KCmxsaSBtYXhTdWJBcnJheSh2ZWN0b3I8bGxpPiAmYSwgaW50IGwsaW50IGgpIHsKICAgIGlmKGw+aCkKICAgICAgICByZXR1cm4gMDsKCiAgICBsbGkgY3Vycl9zdW09YVtsXSxtYXhfc29fZmFyPWFbbF07CiAgICBpbnQgcz0wLG5zPTAsZT0wOwogICAgbGxpIG09MCxtbT1taW4oYVtsXSwobGxpKTApOwogICAgZm9yKGludCBpPWwrMTtpPD1oO2krKykgewoKICAgICAgICBpZihhW2ldID4gY3Vycl9zdW0rYVtpXSkgewogICAgICAgICAgICBucz1pOwogICAgICAgICAgICBtbT0wOwogICAgICAgICAgICBjdXJyX3N1bT1hW2ldOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbW09bWluKG1tLGFbaV0pOwogICAgICAgICAgICBjdXJyX3N1bT1jdXJyX3N1bSthW2ldOwogICAgICAgIH0KCiAgICAgICAgaWYoY3Vycl9zdW0gPiBtYXhfc29fZmFyKSB7CiAgICAgICAgICAgIG09bWluKG1tLG0pOwogICAgICAgICAgICBzPW5zOwogICAgICAgICAgICBlPWk7CiAgICAgICAgICAgIG1heF9zb19mYXI9Y3Vycl9zdW07CiAgICAgICAgfQogICAgfQoKICAgIGxsaSBsZWZ0PW1heF9zb19mYXI7CiAgICBsbGkgc3VtPW1heF9zb19mYXI7CiAgICBmb3IoaW50IGk9cy0yO2k+PWw7aS0tKSB7CiAgICAgICAgc3VtKz1hW2ldOwogICAgICAgIGlmKHN1bT5sZWZ0KQogICAgICAgICAgICBsZWZ0PXN1bTsKICAgIH0KICAgIGxsaSByaWdodD1tYXhfc29fZmFyOwogICAgc3VtPW1heF9zb19mYXI7CiAgICBmb3IoaW50IGk9ZSsyO2k8PWg7aSsrKSB7CiAgICAgICAgc3VtKz1hW2ldOwogICAgICAgIGlmKHN1bT5yaWdodCkKICAgICAgICAgICAgcmlnaHQ9c3VtOwogICAgfQoKICAgIGxsaSBtaWQ9bWF4X3NvX2ZhcjsKICAgIGlmKHM8ZSkKICAgICAgICBtaWQtPW07CgogICAgbGxpIHJlcz1tYXgobWlkLG1heChtYXhfc29fZmFyLG1heChsZWZ0LHJpZ2h0KSkpOwoKICAgIC8vY291dDw8InN0YXJ0ICI8PHM8PCIgIjw8ZTw8IiAiPDxtPDwiXG4iOwoKICAgIHJldHVybiByZXM7Cn0KCi8qCjgKOQoxMCAxMCAtMTAgMTAgMTIgMjAgLTEwIDEwIDUKOAoxIC0xMDAgLTEwIDggNCAtMyAyIDYKOAoxMCAtMTAwIDEwIDcgLTIgNSAtMTAgNgo4CjYgLTEwIDUgLTIgNyAxMCAtMTAwIDEwCjUKMSAtMiAzIC0yIDUKMgotMSAtMgo3CjEgLTIgNyAtMiA1IC0xMCA2CjcKMSAtMiAzIC0yIDUgLTEwIDYKCgoqLwppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luPj50OwogICAgLy9jb3V0PDx0OwogICAgaW50IG47CiAgICB3aGlsZSh0LS0pIHsKICAgICAgICAvL2NvdXQ8PCJsb29wIGluICI8PHQ7CiAgICAgICAgY2luPj5uOwogICAgICAgIHZlY3RvcjxsbGk+IGEobik7CiAgICAgICAgbGxpIHg7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKykgewogICAgICAgICAgICBjaW4+Png7CiAgICAgICAgICAgIGFbaV09eDsKICAgICAgICB9CgogICAgICAgIC8qdmVjdG9yPGludD4gbWlkczsKICAgICAgICAvL21pZHMucHVzaF9iYWNrKDApOwogICAgICAgIGxsaSBtPTA7CiAgICAgICAgZm9yKGludCBpPTE7aTxuO2krKykgewogICAgICAgICAgICBpZihhW2ldPT1tKQogICAgICAgICAgICAgICAgbWlkcy5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIGVsc2UgaWYoYVtpXTxtKSB7CiAgICAgICAgICAgICAgICAvL209YVtpXTsKICAgICAgICAgICAgICAgIG1pZHMuY2xlYXIoKTsKICAgICAgICAgICAgICAgIG1pZHMucHVzaF9iYWNrKGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBsbGkgcmV0PW1heHN1YmFycmF5KGEsbik7CiAgICAgICAgaW50IG1pbD1taWRzLnNpemUoKTsKICAgICAgICBmb3IoaW50IGk9MDtpPG1pbDtpKyspIHsKICAgICAgICAgICAgaW50IGluZGV4PW1pZHNbaV07CgogICAgICAgICAgICBsbGkgdmFsPWFbaW5kZXhdOwogICAgICAgICAgICBpbnQgc3RhcnQ9MCxlbmQ9MDsKICAgICAgICAgICAgYS5lcmFzZShhLmJlZ2luKCkraW5kZXgpOwogICAgICAgICAgICByZXQ9bWF4KHJldCxtYXhzdWJhcnJheShhLG4tMSksc3RhcnQsZW5kKTsKICAgICAgICAgICAgaWYoaW5kZXg+PXN0YXJ0ICYmIGluZGV4PD1lbmQpCgogICAgICAgICAgICBhLmluc2VydChhLmJlZ2luKCkraW5kZXgsdmFsKTsKICAgICAgICB9Ki8KCiAgICAgICAgbGxpIHJldD1tYXhTdWJBcnJheShhLDAsbi0xKTsKICAgICAgICAvL2xsaSByZXQ9bWF4U3ViVHJlZUZvcihhLDEsbi0xLGFbMF0sYVswXSk7CiAgICAgICAgLy9sbGkgcmV0PW1heFN1YlRyZWVMZWZ0UmlnaHQoYSwxLG4tMSxhWzBdLGFbMF0pOwoKICAgICAgICAvL3ByaW50KHJldCk7CiAgICAgICAgY291dDw8cmV0PDxlbmRsOwogICAgICAgIC8vY291dDw8Imxvb3Agb3V0ICI8PHQ7CiAgICB9Cn0K