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 Rust (1.42.0) (judge verdict: Time Limit Exceeded)

fn get_line() -> String {
    let mut line = String::new();
    std::io::stdin().read_line(&mut line).unwrap();
    line.trim().to_string()
}
 
fn main() {
    let x = get_line().parse::<i64>().unwrap();
    let mut a = (x as f64).powf(0.2) as i64;
    let mut b = 0;
 
    let mut diff = 10000000000_i64;
    let mut flag = false;
    let mut init = true;
 
    while diff != 0 && !flag && a > 0 {
        if !init {
            a -= 1;
        }
        diff = x - a.pow(5);
        let temp = (diff as f64).powf(0.2) as i64 + 1;
        for i in 1..temp + 1 {
            if i.pow(5) == diff {
                flag = true;
                b = -1 * i;
              	break;
            }
        }
        init = false;
    }

    let ret = a.pow(5) - b.pow(5) == x;
    if !ret {
        let mut a = (x as f64).powf(0.2) as i64;
        loop {
            a += 1;
            diff = a.pow(5) - x;
            let temp = (diff as f64).powf(0.2) as i64 + 1;
            for i in 1..temp + 1 {
                if i.pow(5) == diff {
                    b = i;
                    break;
                }
            }
        }
    }

    println!("{} {}", a, b);
}