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

#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b;
  cin >> a >> b;
  cout << (a * (a - 1)) / 2 + (b * (b - 1)) / 2;
  return 0;
}

Error: WA

Fixed submission:

#include <algorithm>
#include <cassert>
#include <climits>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <initializer_list>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <sstream> // istringstream buffer(myString);
#include <stack>
#include <unordered_set>
#include <vector>
using namespace std;
#define bit(x, i) (x & (1 << i))          // select the bit of position i of x
#define lowbit(x) ((x) & ((x) ^ ((x)-1))) // get the lowest bit of x
#define hBit(msb, n)                                                           \\
  asm("bsrl %1,%0"                                                             \\
      : "=r"(msb)                                                              \\
      : "r"(n)) // get the highest bit of x, maybe the fastest
#define max(a, b) (a < b ? b : a)
#define pwrtwo(x) (1 << (x))
// #define abs(x) (x<0?(-x):x) // big bug here if "-x" is not surrounded by "()"
#define IN(i, l, r) (l < i && i < r) // the next for are for checking bound
#define ll                                                                     \\
  long long // data types used often, but you don't want to type them time by
            // time
#define ull unsigned long long
#define ui unsigned int
#define us unsigned short
#define IOS                                                                    \\
  ios_base::sync_with_stdio(0); // to synchronize the input of cin and scanf
#define INF 1001001001
#define PI 3.1415926535897932384626
#define LINR(i, l, r) (l <= i && i <= r)
#define LIN(i, l, r) (l <= i && i < r)
#define INR(i, l, r) (l < i && i <= r)
#define F(i, L, R) for (ll i = L; i < R; i++) // next four are for "for loops"
#define FE(i, L, R) for (ll i = L; i <= R; i++)
#define FF(i, L, R) for (ll i = L; i > R; i--)
#define FFE(i, L, R) for (ll i = L; i >= R; i--)
#define getI(a)                                                                \\
  cin >> a // next three are handy ways to get ints, it's also force you to use
           // '&' sign
#define getII(a, b) cin >> a >> b
#define getIII(a, b, c) cin >> a >> b >> c
#define sc(n)                                                                  \\
  int(n);                                                                      \\
  cin >> n // handy if the input is right after the definition of a variable
#define sc2(n, m)                                                              \\
  int(n), (m);                                                                 \\
  cin >> n >> m
#define sc3(n, m, k)                                                           \\
  int(n), (m), (k);                                                            \\
  cin >> n >> m >> k
#define scarr(arr, n)                                                          \\
  int arr[n];                                                                  \\
  for (int i = 0; i < n; i++)                                                  \\
  getI(arr[i])
#define scarrn(arr, n)                                                         \\
  ll arr[n + 1];                                                               \\
  for (int i = 1; i <= n; i++)                                                 \\
  getI(arr[i])
#define TESTS                                                                  \\
  sc(testow);                                                                  \\
  while (testow--) // for multilple cases problems
#define whileZ                                                                 \\
  int T;                                                                       \\
  getI(T);                                                                     \\
  while (T--)                             // the same as above
#define getS(x) scanf("%s", x)            // get a char* string
#define clr(a, x) memset(a, x, sizeof(a)) // set elements of array to some value
#define char2Int(c) (c - '0')
#define lastEle(vec) vec[vec.size() - 1]
#define SZ(x) ((int)((x).size()))
#define REMAX(a, b) (a) = max((a), (b)) // set a to the maximum of a and b
#define REMIN(a, b) (a) = min((a), (b));
#define FOREACH(i, t)                                                          \\
  for (typeof(t.begin()) i = t.begin(); i != t.end();                          \\
       i++)                           // traverse an STL data structure
#define ALL(c) (c).begin(), (c).end() // handy for function like "sort()"
#define PRESENT(c, x) ((c).find(x) != (c).end())
#define CPRESENT(c, x) (find(ALL(c), x) != (c).end())

/// cout
// #define c_ cout
// for map, pair
#define mp make_pair
#define fi first
#define se second
// for debug
inline void pisz(int n) { printf("%d\\n", n); }
#define DBG(vari) cerr << #vari << " = " << (vari) << endl;
#define printA(a, L, R) FE(i, L, R) cout << a[i] << (i == R ? '\\n' : ' ')
#define printV(a) printA(a, 0, a.size() - 1)
#define MAXN 10000
#define c_sum(a, b, n)                                                         \\
  F(i, 0, n) if (i == 0) b[i] = a[i];                                          \\
  else b[i] = b[i - 1] + a[i]
// for vectors
#define pb push_back
typedef int elem_t;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
// directions
const int fx[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
const int fxx[8][2] = {{0, 1}, {0, -1}, {1, 0},  {-1, 0},
                       {1, 1}, {1, -1}, {-1, 1}, {-1, -1}};
template <typename T, typename TT>
ostream &operator<<(ostream &s, pair<T, TT> t) {
  return s << "(" << t.first << "," << t.second << ")";
}
template <typename T> ostream &operator<<(ostream &s, vector<T> t) {
  F(i, 0, SZ(t)) s << t[i] << " ";
  return s;
}

int main(int argc, char const *argv[]) {
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  ios_base::sync_with_stdio(false);

  int a, b;
  cin >> a >> b;
  cout << (a * (a - 1)) / 2 + (b * (b - 1)) / 2;
  return 0;
}