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

#include <bits/stdc++.h>
using namespace std;

#define rep(i, n) for (int(i) = 0; (i) < (n); (i)++)
#define repp(i, n, m) for (int(i) = (n); (i) < (m); (i)++)
#define repn(i, n) for (int(i) = 1; (i) <= (n); (i)++)
#define repr(i, n) for (int(i) = (n - 1); (i) >= 0; (i)--)
#define all(x) (x).begin(), (x).end()
#define lint long long
#define ulint unsigned long long
#define ldou long double
#define fi first
#define se second
#define setpre(x) std::cout << fixed << setprecision(x)
#define ii(x)                                                                  \\
  int x;                                                                       \\
  cin >> (x)
#define ii2(x, y)                                                              \\
  int x, y;                                                                    \\
  cin >> (x) >> (y)
#define ii3(x, y, z)                                                           \\
  int x, y, z;                                                                 \\
  cin >> (x) >> (y) >> (z)
#define out(x) cout << (x) << endl
#define outs(x) cout << (x) << " "
#define yn(x) cout << ((x) ? ("Yes") : ("No")) << endl
#define YN(x) cout << ((x) ? ("YES") : ("NO")) << endl
#define bit_c(x) __builtin_popcountll(x)

inline void logger() { std::cout << " [LOGGER] " << endl; }
template <typename A, typename... B> void logger(const A &a, const B &...b) {
  cout << a << " , ";
  logger(b...);
}

typedef pair<lint, lint> P;
const lint MOD = 1000000007;
const lint MOD9 = 998244353;
const lint INF = MOD * MOD;
const int MAX = 200005;

/* ...o(^-^)o... */

lint pow5(lint x) { return x * x * x * x * x; }

int main() {
  lint x;
  cin >> x;
  for (lint a = 0; a <= 2000; a++) {
    lint y = x - pow5(a);
    for (lint b = 0; b <= 2000; b++) {
      if (pow5(b) == y) {
        outs(a);
        out(-b);
        return 0;
      }
      if (pow5(b) == -y) {
        outs(a);
        out(b);
        return 0;
      }
    }
  }
  return -1;
}

Error: WA

Fixed submission:

#include <bits/stdc++.h>
using namespace std;

#define rep(i, n) for (int(i) = 0; (i) < (n); (i)++)
#define repp(i, n, m) for (int(i) = (n); (i) < (m); (i)++)
#define repn(i, n) for (int(i) = 1; (i) <= (n); (i)++)
#define repr(i, n) for (int(i) = (n - 1); (i) >= 0; (i)--)
#define all(x) (x).begin(), (x).end()
#define lint long long
#define ulint unsigned long long
#define ldou long double
#define fi first
#define se second
#define setpre(x) std::cout << fixed << setprecision(x)
#define ii(x)                                                                  \\
  int x;                                                                       \\
  cin >> (x)
#define ii2(x, y)                                                              \\
  int x, y;                                                                    \\
  cin >> (x) >> (y)
#define ii3(x, y, z)                                                           \\
  int x, y, z;                                                                 \\
  cin >> (x) >> (y) >> (z)
#define out(x) cout << (x) << endl
#define outs(x) cout << (x) << " "
#define yn(x) cout << ((x) ? ("Yes") : ("No")) << endl
#define YN(x) cout << ((x) ? ("YES") : ("NO")) << endl
#define bit_c(x) __builtin_popcountll(x)

inline void logger() { std::cout << " [LOGGER] " << endl; }
template <typename A, typename... B> void logger(const A &a, const B &...b) {
  cout << a << " , ";
  logger(b...);
}

typedef pair<lint, lint> P;
const lint MOD = 1000000007;
const lint MOD9 = 998244353;
const lint INF = MOD * MOD;
const int MAX = 200005;

/* ...o(^-^)o... */

lint pow5(lint x) { return x * x * x * x * x; }

int main() {
  lint x;
  cin >> x;
  for (lint a = 0; pow5(a) <= x; a++) {
    lint b5 = x - pow5(a);
    for (lint b = 0; pow5(b) <= x; b++) {
      if (pow5(b) == b5) {
        outs(a);
        out(-b);
        return 0;
      }
    }
  }
  return -1;
}