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: Accepted)

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

typedef long long LL;

#define REP(i, n) for(int i = 0; i < (int)(n); i++)
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define ALL(x) (x).begin(),(x).end()
const int IINF = 1e9;
const LL LINF = 1e18;
const LL MOD = 1e9+7;

template<typename T>
T power(T x, T y) {
    T res = 1;
    for(;0 < y;) {
        if(y%2 == 0) {
            x *= x;
            y /= 2;
        }else{
            res *= x;
            y--;
        }
    }
    return res;
}

LL root5(LL x) {
    bool plus = 0 <= x;
    if(!plus) {
        x *= -1;
    }

    LL left = 0;
    LL right = 2000;
    for(;1 < right - left;) {
        LL mid = (left + right)/2;
        if(power<LL>(mid, 5) <= x) {
            left = mid;
        }else{
            right = mid;
        }
    }
    if(!plus) {
        left *= -1;
    }
    return left;
}

int main() {
    LL X;
    cin >> X;
    LL B = 114514;
    FOR(i, -2000, 2001) {
        LL x = X + power<LL>(i, 5);
        LL rt = root5(x);
        if(power<LL>(rt, 5) == x) {
            B = i;
            break;
        }
    }
    LL A = root5(X + power<LL>(B, 5));
    cout << A << " " << B << endl;
    return 0;
}