1405B - Array Cancellation - CodeForces Solution


constructive algorithms implementation *1000

Please click on ads to support us..

Python Code:

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))

C++ Code:

#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;
}


Comments

Submit
0 Comments
More Questions

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