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

// Iamskk//
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iosfwd>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using namespace std;
#define IOS                                                                    \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(0);
#define endl '\\n'
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
#define pb push_back
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define ai(arr, n)                                                             \\
  for (int i = 0; i < n; i++)                                                  \\
    cin >> arr[i];
#define ao(arr)                                                                \\
  for (auto asdfasdfasdf : arr)                                                \\
    cout << asdfasdfasdf << " ";
#define mi(arr, m, n)                                                          \\
  for (int i = 0; i < m; i++) {                                                \\
    for (int j = 0; j < n; j++)                                                \\
      cin >> arr[i][j];                                                        \\
  }
#define mo(arr, m, n)                                                          \\
  for (int i = 0; i < m; i++) {                                                \\
    for (int j = 0; j < n; j++)                                                \\
      cout << arr[i][j] << " ";                                                \\
    cout << endl;                                                              \\
  }
#define countsetbits(x) __builtin_popcount(x)
#define ll long long
#define debug cout << "I AM EXECUTING" << endl
#define testcases                                                              \\
  int asdf;                                                                    \\
  cin >> asdf;                                                                 \\
  while (asdf--)
#define vi vector<int>
#define si set<int>
#define vc vector<char>
#define sc set<char>
#define vll vector<long long int>
#define vs vector<string>
#define vpp vector<pair<int, int>>
#define vppo(prs)                                                              \\
  for (auto x : prs) {                                                         \\
    cout << x.first << " " << x.second << endl;                                \\
  }
#define For(__, $$, adfdf) for (int __ = $$; __ < adfdf; __++)
// In the range = p[r]-p[l+1]; p.size()==n+1.
vll primeFactors(ll int n) {
  vll a;
  while (n % 2 == 0) {
    a.pb(2);
    n = n / 2;
  }
  for (int i = 3; i <= sqrt(n); i = i + 2) {
    while (n % i == 0) {
      a.pb(i);
      n = n / i;
    }
  }
  if (n > 2)
    a.pb(n);
  return a;
}
vll printDivisors(ll int n) {
  vll v;
  for (ll int i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        v.pb(i);
      else {
        v.pb(i);
        v.push_back(n / i);
      }
    }
  }
  return v;
}
ll int mpow(ll int base, ll int exp, ll int mod) {
  base %= mod;
  ll int result = 1ll;
  while (exp > 0) {
    if (exp & 1ll)
      result = ((ll)result * base) % mod;
    base = ((ll)base * base) % mod;
    exp >>= 1;
  }
  return result;
}
string sconvert(ll int n) {
  stringstream ss;
  ss << n;
  string str = ss.str();
  return str;
}
bool sortbysec(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.second > b.second);
}
template <typename KeyType,
          typename ValueType> // for finding max element in the map.
std::pair<KeyType, ValueType> get_max(const std::map<KeyType, ValueType> &x) {
  using pairtype = std::pair<KeyType, ValueType>;
  return *std::max_element(x.begin(), x.end(),
                           [](const pairtype &p1, const pairtype &p2) {
                             return p1.second < p2.second;
                           });
}
const ll int mod = 1e9 + 7;
ll modmul(ll a, ll b) { return ((a % mod) * (b % mod)) % mod; }

ll modadd(ll a, ll b) { return ((a % mod) + (b % mod) + mod) % mod; }

ll modsub(ll a, ll b) { return ((a % mod) - (b % mod) + mod) % mod; }

void single() {

  ll int answer = INT_MIN;
  int n;
  cin >> n;
  int m;
  cin >> m;
  ll int k;
  cin >> k;
  vll arr(n);
  ai(arr, n);
  vll brr(m);
  ai(brr, m);
  vll prefix(m + 1);
  For(i, 1, m + 1) { prefix[i] = prefix[i - 1] + brr[i - 1]; }
  vll first(n + 1);
  For(i, 1, n + 1) { first[i] = first[i - 1] + arr[i - 1]; }
  For(i, 0, n + 1) {
    if (first[i] > k)
      break;
    ll int currentsum = k - first[i];
    ll int index = lower_bound(all(prefix), currentsum) - prefix.begin();
    if (index > m or prefix[index] > currentsum)
      index--;
    answer = max(answer, i + index);
  }
  cout << answer << endl;
  return;
}
void multiple() {
  testcases { single(); }
}

int main() {
  IOS;
  // freopen("input.txt","r",stdin);
  // freopen("output.txt","w",stdout);
  single();
}


Error: 0

Fixed submission:

// Iamskk//
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cassert>
#include <cctype>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iosfwd>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
using namespace std;
#define IOS                                                                    \\
  ios_base::sync_with_stdio(false);                                            \\
  cin.tie(NULL);                                                               \\
  cout.tie(0);
#define endl '\\n'
#define yes cout << "YES" << endl
#define no cout << "NO" << endl
#define pb push_back
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define ai(arr, n)                                                             \\
  for (int i = 0; i < n; i++)                                                  \\
    cin >> arr[i];
#define ao(arr)                                                                \\
  for (auto asdfasdfasdf : arr)                                                \\
    cout << asdfasdfasdf << " ";
#define mi(arr, m, n)                                                          \\
  for (int i = 0; i < m; i++) {                                                \\
    for (int j = 0; j < n; j++)                                                \\
      cin >> arr[i][j];                                                        \\
  }
#define mo(arr, m, n)                                                          \\
  for (int i = 0; i < m; i++) {                                                \\
    for (int j = 0; j < n; j++)                                                \\
      cout << arr[i][j] << " ";                                                \\
    cout << endl;                                                              \\
  }
#define countsetbits(x) __builtin_popcount(x)
#define ll long long
#define debug cout << "I AM EXECUTING" << endl
#define testcases                                                              \\
  int asdf;                                                                    \\
  cin >> asdf;                                                                 \\
  while (asdf--)
#define vi vector<int>
#define si set<int>
#define vc vector<char>
#define sc set<char>
#define vll vector<long long int>
#define vs vector<string>
#define vpp vector<pair<int, int>>
#define vppo(prs)                                                              \\
  for (auto x : prs) {                                                         \\
    cout << x.first << " " << x.second << endl;                                \\
  }
#define For(__, $$, adfdf) for (int __ = $$; __ < adfdf; __++)
// In the range = p[r]-p[l+1]; p.size()==n+1.
vll primeFactors(ll int n) {
  vll a;
  while (n % 2 == 0) {
    a.pb(2);
    n = n / 2;
  }
  for (int i = 3; i <= sqrt(n); i = i + 2) {
    while (n % i == 0) {
      a.pb(i);
      n = n / i;
    }
  }
  if (n > 2)
    a.pb(n);
  return a;
}
vll printDivisors(ll int n) {
  vll v;
  for (ll int i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        v.pb(i);
      else {
        v.pb(i);
        v.push_back(n / i);
      }
    }
  }
  return v;
}
ll int mpow(ll int base, ll int exp, ll int mod) {
  base %= mod;
  ll int result = 1ll;
  while (exp > 0) {
    if (exp & 1ll)
      result = ((ll)result * base) % mod;
    base = ((ll)base * base) % mod;
    exp >>= 1;
  }
  return result;
}
string sconvert(ll int n) {
  stringstream ss;
  ss << n;
  string str = ss.str();
  return str;
}
bool sortbysec(const pair<int, int> &a, const pair<int, int> &b) {
  return (a.second > b.second);
}
template <typename KeyType,
          typename ValueType> // for finding max element in the map.
std::pair<KeyType, ValueType> get_max(const std::map<KeyType, ValueType> &x) {
  using pairtype = std::pair<KeyType, ValueType>;
  return *std::max_element(x.begin(), x.end(),
                           [](const pairtype &p1, const pairtype &p2) {
                             return p1.second < p2.second;
                           });
}
const ll int mod = 1e9 + 7;
ll modmul(ll a, ll b) { return ((a % mod) * (b % mod)) % mod; }

ll modadd(ll a, ll b) { return ((a % mod) + (b % mod) + mod) % mod; }

ll modsub(ll a, ll b) { return ((a % mod) - (b % mod) + mod) % mod; }

void single() {
  int a;
  cin >> a;
  int b;
  cin >> b;
  ll int k;
  cin >> k;
  vll arr(a);
  ai(arr, a);
  vll brr(b);
  ai(brr, b);
  ll int answer = 0;
  int first = 0;
  int second = 0;
  while (1) {
    if (first == a) {
      while (second < b and arr[second] <= k) {
        answer++;
        k -= arr[second];
        second++;
      }
      break;
    } else if (second == b) {
      while (first < a and arr[first] <= k) {
        answer++;
        k -= arr[first];
        first++;
      }
      break;
    }
    if (arr[first] <= arr[second] and k >= arr[first]) {
      answer++;
      k -= arr[first];
      first++;
    } else if (arr[second] < arr[first] and k >= arr[second]) {
      answer++;
      k -= arr[second];
      second++;
    } else {
      break;
    }
  }
  cout << answer << endl;
  return;
}
void multiple() {
  testcases { single(); }
}

int main() {
  IOS;
  // freopen("input.txt","r",stdin);
  // freopen("output.txt","w",stdout);
  single();
}