for _ in range(0, int(input())):
input()
v = list(map(int, input().split()))
p = 0
t = 0
for x in v:
if x < 0:
w = p + x
p = max(0, p + x)
if w < 0:
t += w
else:
p += x
print(abs(t))
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
void solve(){
int n; cin>>n;
int arr[n];
for(int i = 0; i < n; i++){
cin>>arr[i];
}
int possum = 0;
for(int i = 0; i < n; i++){
if(arr[i] > 0){
possum += arr[i];
}
else{
int mini = min(possum, abs(arr[i]));
arr[i] = arr[i] + mini;
possum = possum - mini;
}
}
cout<<possum<<endl;
return ;
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int tc;
cin>>tc;
while(tc--){
solve();
}
return 0;
}
409. Longest Palindrome | 1574A - Regular Bracket Sequences |
1574B - Combinatorics Homework | 1567A - Domino Disaster |
1593A - Elections | 1607A - Linear Keyboard |
EQUALCOIN Equal Coins | XOREQN Xor Equation |
MAKEPAL Weird Palindrome Making | HILLSEQ Hill Sequence |
MAXBRIDGE Maximise the bridges | WLDRPL Wildcard Replacement |
1221. Split a String in Balanced Strings | 1002. Find Common Characters |
1602A - Two Subsequences | 1555A - PizzaForces |
1607B - Odd Grasshopper | 1084A - The Fair Nut and Elevator |
1440B - Sum of Medians | 1032A - Kitchen Utensils |
1501B - Napoleon Cake | 1584B - Coloring Rectangles |
1562B - Scenes From a Memory | 1521A - Nastia and Nearly Good Numbers |
208. Implement Trie | 1605B - Reverse Sort |
1607C - Minimum Extraction | 1604B - XOR Specia-LIS-t |
1606B - Update Files | 1598B - Groups |