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>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> P;
const long double PI = (acos(-1));
#define rep(i, x, n) for (int i = x; i < (int)(n); i++)
#define sc(x) scanf("%d",&x)
#define scll(x) scanf("%lld",&x)

ll mpow(ll a, ll n){
    ll res = 1;
    while (n > 0){
        if (n & 1) res = res * a;
        a = a * a;
        n >>= 1;
    }
    return res;
}

int main(){
    int x; sc(x);
    bool check = false;
    vector<P> v;
    ll now = 0, tmp, a, b;
    while(1){
        tmp = mpow(now, 5);
        if (tmp > x) break;
        v.push_back(P(tmp,now));
        now++;
    }
    rep(i, 0, v.size()){
        a = v[i].first;
        rep(j, 0, v.size()){
            b = v[j].first;
            if (a-b==x){
                cout << v[i].second << " " << v[j].second << endl;
                check = true;
            }
            if (a+b==x){
                cout << v[i].second << " " << -v[j].second << endl;
                check = true;
            }
            if (check) break;
        }
        if (check) break;
    }
    return 0;
}