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: Time Limit Exceeded)

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
constexpr ll mod=1e9+7;

set<ll> divisor(ll n)
{
  if(n<0) n*=-1;
  else if(n==0) 
  {
    set<ll> st;
    st.insert(0);
    return st;
  }
  set<ll> st;  
  for (int i = 1; i <= sqrt(n); ++i)
  {
    if(n%i==0)
    {
      st.insert(i);
      st.insert(n/i);
      st.insert(-1*i);
      st.insert(-1*n/i);
    }
  }
  return st;
}

int main()
{
  ll x;
  cin>>x;
  set<ll> st=divisor(x);

  for(const auto& e: st) 
  {
    if(abs(x/e-e*e*e*e)%5!=0) continue;
    ll tgt=x-e*e*e*e*e;
    set<ll> div=divisor(tgt);
    for(const auto& b: div) 
    {
      if((b+e)*(b+e)*(b+e)*(b+e)*(b+e)-b*b*b*b*b==x)
      {
        cout<<b+e<<" "<<b<<endl;
        return 0;
      }
    }
  }
}