Problem p02686 (C++) — buggy submission, verdict: Runtime Error

//  RAKSHIT KADAM
// ALWAYS USE &IT FOR ITERATING USING AUTO ...
// USE COUNT(STARTING ADDRESS, ENDING ADRESS ,VALUE) FOR FINDING THE COUNT IN
// THE RESPECTIVE DATA STRUCTURE NOTE THAT MEMSET CANT ASSIGN A VALUE OF 10^18
// IT WILL ASSIGN A LOWER VALUE THAN THAT!!!
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
// #define ordered_set tree< int ,  null_type ,  less<int> ,  rb_tree_tag ,
// tree_order_statistics_node_update>
#warning !!!check the size of arrayss!!!

// NUMERIC DEFINITIONS :
#define INF 2000000000000000005
#define MOD 1000000007
#define newMOD 998244353
#define MAX 300006
#define pi 3.1415926535897932384626433832795
#define ll long long
#define int long long
#define P(gg)                                                                  \\
  for (auto rax : gg) {                                                        \\
    cout << rax << " ";                                                        \\
  }                                                                            \\
  cout << endl;
#define Need_for_speed(activated)                                              \\
  ios_base ::sync_with_stdio(0);                                               \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
#define satisfy                                                                \\
  ll t;                                                                        \\
  cin >> t;                                                                    \\
  while (t--)
#define inp(n)                                                                 \\
  int n;                                                                       \\
  cin >> n
#define mp make_pair
#define pb push_back
#define endl "\\n"
#define x first
#define y second
#define fore(i, a, b) for (ll i = a; i < b; i++)
#define forci(i, n) for (ll i = 0; i < n; i++)
#define vi vector<ll>
#define Endl endl
#define lb lower_bound
#define ub upper_bound
#define pii pair<ll, ll>
#define input                                                                  \\
  freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout)
#define time                                                                   \\
  cerr << "\\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\\n";
using namespace std;
ll gcd(ll a, ll b) {
  if (b == 0)
    return a;
  return gcd(b, a % b);
}
// int power(int x, unsigned int y, unsigned int m){ if (y == 0) return 1;int p
// = power(x, y/2, m) % m;  p = (p * p) % m; return (y%2 == 0)? p : (x * p) %
// m;} ll modInverse(int a, int m){int g = gcd(a, m); { return power(a, m-2,
// m);}}
bool comp(pii a, pii b) {
  if (a.first == 0 && b.first != 0)
    return false;
  if (a.first != 0 && b.first == 0)
    return true;
  if (a.second == 0 && b.second != 0)
    return true;
  if (a.second != 0 && b.second == 0)
    return false;
  return a.first - a.second > b.first - b.second;
}
void solve() {
  vector<pii> v;
  ll n;
  cin >> n;
  ll open = 0;
  ll close = 0;
  for (ll i = 0; i < n; i++) {
    ll pos = 0, neg = 0;
    string s;
    cin >> s;
    ll tim = 0;
    for (auto c : s) {
      if (c == '(')
        tim++;
      else {
        if (tim == 0)
          neg++;
        else
          tim--;
      }
    }
    v.pb(mp(max(0LL, tim), neg));
  }

  sort(v.begin(), v.end(), comp);

  for (ll i = 0; i < n; i++) {

    if (open < v[i].y) {
      cout << "No" << endl;
      return;
    }
    open += v[i].x - v[i].y;
  }
  if (!open) {
    cout << "Yes" << endl;
    return;
  }

  cout << "No" << endl;
}
signed main() {

  Need_for_speed(activated);
  // satisfy
  //     {
  //    solve();
  //     }

  solve();
  return 0;
}


Error: -11

Fixed submission:

//  RAKSHIT KADAM
// ALWAYS USE &IT FOR ITERATING USING AUTO ...
// USE COUNT(STARTING ADDRESS, ENDING ADRESS ,VALUE) FOR FINDING THE COUNT IN
// THE RESPECTIVE DATA STRUCTURE NOTE THAT MEMSET CANT ASSIGN A VALUE OF 10^18
// IT WILL ASSIGN A LOWER VALUE THAN THAT!!!
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
// using namespace __gnu_pbds;
// #define ordered_set tree< int ,  null_type ,  less<int> ,  rb_tree_tag ,
// tree_order_statistics_node_update>
#warning !!!check the size of arrayss!!!

// NUMERIC DEFINITIONS :
#define INF 2000000000000000005
#define MOD 1000000007
#define newMOD 998244353
#define MAX 300006
#define pi 3.1415926535897932384626433832795
#define ll long long
#define int long long
#define P(gg)                                                                  \\
  for (auto rax : gg) {                                                        \\
    cout << rax << " ";                                                        \\
  }                                                                            \\
  cout << endl;
#define Need_for_speed(activated)                                              \\
  ios_base ::sync_with_stdio(0);                                               \\
  cin.tie(NULL);                                                               \\
  cout.tie(NULL)
#define satisfy                                                                \\
  ll t;                                                                        \\
  cin >> t;                                                                    \\
  while (t--)
#define inp(n)                                                                 \\
  int n;                                                                       \\
  cin >> n
#define mp make_pair
#define pb push_back
#define endl "\\n"
#define x first
#define y second
#define fore(i, a, b) for (ll i = a; i < b; i++)
#define forci(i, n) for (ll i = 0; i < n; i++)
#define vi vector<ll>
#define Endl endl
#define lb lower_bound
#define ub upper_bound
#define pii pair<ll, ll>
#define input                                                                  \\
  freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout)
#define time                                                                   \\
  cerr << "\\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\\n";
using namespace std;
ll gcd(ll a, ll b) {
  if (b == 0)
    return a;
  return gcd(b, a % b);
}
// int power(int x, unsigned int y, unsigned int m){ if (y == 0) return 1;int p
// = power(x, y/2, m) % m;  p = (p * p) % m; return (y%2 == 0)? p : (x * p) %
// m;} ll modInverse(int a, int m){int g = gcd(a, m); { return power(a, m-2,
// m);}}
bool comp(pii a, pii b) { return a.x - a.y < b.x - b.y; }
void solve() {
  vector<pii> v;
  ll n;
  cin >> n;
  ll open = 0;
  ll close = 0;
  for (ll i = 0; i < n; i++) {
    ll pos = 0, neg = 0;
    string s;
    cin >> s;
    ll tim = 0;
    for (auto c : s) {
      if (c == '(')
        tim++;
      else {
        if (tim == 0)
          neg++;
        else
          tim--;
      }
    }
    if (neg == 0)
      open += tim;
    else if (tim == 0)
      close += neg;
    else
      v.pb(mp(neg, max(0LL, tim)));
  }
  //    for(auto it:v)
  //    {
  //        cout<<it.x<<" "<<it.y<<endl;
  //    }
  sort(v.begin(), v.end(), comp);
  //    cout<<endl<<endl;
  //
  //    for(auto it:v)
  //    {
  //        cout<<it.x<<" "<<it.y<<endl;
  //    }

  for (ll i = 0; i < n; i++) {

    if (open < v[i].x) {
      cout << "No" << endl;
      return;
    }
    open += v[i].y - v[i].x;
  }
  if (!open) {
    cout << "Yes" << endl;
    return;
  }

  cout << "No" << endl;
}
signed main() {

  Need_for_speed(activated);
  // satisfy
  //     {
  //    solve();
  //     }

  solve();
  return 0;
}