Problem:
Score : 400 points

Problem Statement

Give a pair of integers (A, B) such that A^5-B^5 = X.
It is guaranteed that there exists such a pair for the given integer X.

Constraints

1 \leq X \leq 10^9

X is an integer.

There exists a pair of integers (A, B) satisfying the condition in Problem Statement.

Input

Input is given from Standard Input in the following format:

X

Output

Print A and B, with space in between.
If there are multiple pairs of integers (A, B) satisfying the condition, you may print any of them.

A B

Sample Input 1

33

Sample Output 1

2 -1

For A=2 and B=-1, A^5-B^5 = 33.

Sample Input 2

1

Sample Output 2

0 -1

Solution in C++ (GCC 9.2.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
#define ALL(a) (a).begin(), (a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define pb push_back
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define rep(i, n) FOR(i, 0, n)
#define ll long long
using namespace std;

const ll P = 1000000007;
int gcd(int a, int b) { return b != 0 ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }

int main()
{
  cout << fixed << setprecision(10);
  ll N;
  cin >> N;
  vector<ll> a(10000);
  vector<ll> b(10000);
  rep(i,10000)
  {
    a[i] = i*i*i*i*i;
    b[i] = i*i*i*i*i;
  }
  for(ll i=0;i<10000;i++)
  {
    for(ll j=0;j<10000;j++)
    {
      if(a[i]-b[j]==N)
      {
        cout << i << " " << j << endl;
        return 0;
      }
      if(-a[i]-b[j]==N)
      {
                cout << -i << " " << j << endl;
                return 0;
      }
      if(a[i]+b[j]==N)
      {
                cout << i << " " << -j << endl;
                return 0;
      }
      if(-a[i]+b[j]==N)
      {
                cout << -i << " " << -j << endl;
                return 0;
      }

    }
  }
  return 0;
}