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;
#define ll long long
#define vi vector<int>
#define vvi vector<vector<int>>
#define all(a) (a).begin(), (a).end()
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep2(i, s, n) for (int i = (s); i < (int)(n); i++)
const int MOD = 1e9+7;
const ll LINF = 1e18;
const int INF = 1e9;
ll A, B, C, D, E, F, G, H, N, M, L, K, P, Q, R, W, X, Y, Z;
string S, T;

int main()
{
    cin >> X;

    for (ll i = 1; i < 100000; i++)
    {
        if(X%i == 0) 
        {
            Y = X / i;
                // cout << Y << endl;
            for (ll j=0; j <= Y; j++)
            {

                A = j;
                B = j-i;
                ll A2 = A*A;
                ll B2 = B*B;
                D = A * B;
                E = (A*A)+(A*B)+(A*A);
                if(Y == A2*A2+B2*B2+D*(A2+D+B2))
                {
                    cout<< A << " " << B;
                    return 0;
                }

            }
            
        } 
    }
    
    
    return 0;
}