#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
namespace IO{
const int SIZE = 1 << 19;
char buff[SIZE], *p = buff + SIZE;
char read_char(){
if( p == buff + SIZE ){
fread( buff, 1, SIZE, stdin );
p = buff;
}
return *(p++);
}
inline int read_str(char * s){
char c;
while( isspace(c = read_char()) );
while( !isspace(c = read_char()) ) {
*s=c;
s++;
}
*s=0;
return 0;
}
inline int read_int(){
char c,pc;
pc=c=read_char(); while( (!isdigit(c)) ) {pc=c;c=read_char();}
int r = c-'0';
while( isdigit( c = read_char() ) )
r = 10*r + c - '0';
if(pc=='-')
return -1*r;
return r;
}
}
using namespace IO;
using namespace std;
#define MAX 1000005
long long in[MAX], psum, sum, res1, res;
int N;
int main(){
int t;
t=read_int();
while(t--){
res = res1=sum=0;
//cin >> read_int();
N=read_int();
for(int i=N-1;i>=0;i--)
in[i]=read_int();
for(int i=0;i<N-1;i++) // N-1 is left
{
//psum = sum;
sum = sum + in[i];
res1= res1 + in[i] + sum;
if(sum < 0){
res = res + res1;
sum = 0;
res1=0;
}
//cout << res <<' '<< res1 << ' ' << sum << endl;
}
res = res + res1 + in[N-1];
cout << res << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KbmFtZXNwYWNlIElPewogIGNvbnN0IGludCBTSVpFID0gMSA8PCAxOTsKICBjaGFyIGJ1ZmZbU0laRV0sICpwID0gYnVmZiArIFNJWkU7CgljaGFyIHJlYWRfY2hhcigpewoJCWlmKCBwID09IGJ1ZmYgKyBTSVpFICl7CgkJICAgIGZyZWFkKCBidWZmLCAxLCBTSVpFLCBzdGRpbiApOwoJCSAgICBwID0gYnVmZjsKCQl9CgkJcmV0dXJuICoocCsrKTsKCX0KCWlubGluZSBpbnQgcmVhZF9zdHIoY2hhciAqIHMpewoJCWNoYXIgYzsKCQl3aGlsZSggaXNzcGFjZShjID0gcmVhZF9jaGFyKCkpICk7CgkJd2hpbGUoICFpc3NwYWNlKGMgPSByZWFkX2NoYXIoKSkgKSB7CgkJCSpzPWM7CgkJCXMrKzsKCQl9CgkJKnM9MDsKCQlyZXR1cm4gMDsKCX0KIAoJaW5saW5lIGludCByZWFkX2ludCgpewoJCWNoYXIgYyxwYzsKCQlwYz1jPXJlYWRfY2hhcigpOyB3aGlsZSggKCFpc2RpZ2l0KGMpKSApIHtwYz1jO2M9cmVhZF9jaGFyKCk7fQoJCWludCByID0gYy0nMCc7CgkJd2hpbGUoIGlzZGlnaXQoIGMgPSByZWFkX2NoYXIoKSApICkgCgkJCXIgPSAxMCpyICsgYyAtICcwJzsKCQlpZihwYz09Jy0nKQoJCQlyZXR1cm4gLTEqcjsKCQlyZXR1cm4gcjsKCX0KfQp1c2luZyBuYW1lc3BhY2UgSU87CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTUFYIDEwMDAwMDUKIApsb25nIGxvbmcgaW5bTUFYXSwgcHN1bSwgc3VtLCByZXMxLCByZXM7CmludCBOOwogCmludCBtYWluKCl7CglpbnQgdDsKCXQ9cmVhZF9pbnQoKTsKCXdoaWxlKHQtLSl7CgkJcmVzID0gcmVzMT1zdW09MDsKCQkvL2NpbiA+PiByZWFkX2ludCgpOwoJCU49cmVhZF9pbnQoKTsKCQlmb3IoaW50IGk9Ti0xO2k+PTA7aS0tKQoJCQlpbltpXT1yZWFkX2ludCgpOwoJCWZvcihpbnQgaT0wO2k8Ti0xO2krKykgLy8gTi0xIGlzIGxlZnQKCQl7CgkJCS8vcHN1bSA9IHN1bTsKCQkJc3VtID0gc3VtICsgaW5baV07CgkJCXJlczE9IHJlczEgKyBpbltpXSArIHN1bTsKCQkJaWYoc3VtIDwgMCl7CgkJCQlyZXMgPSByZXMgICsgcmVzMTsKCQkJCXN1bSA9IDA7CgkJCQlyZXMxPTA7CgkJCX0KCQkJLy9jb3V0IDw8IHJlcyA8PCcgJzw8IHJlczEgPDwgJyAnIDw8IHN1bSA8PCBlbmRsOwoJCX0KCQlyZXMgPSByZXMgKyByZXMxICsgaW5bTi0xXTsKCQljb3V0IDw8IHJlcyA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=