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

#![allow(unused_imports)]
#![allow(non_snake_case)]
use std::io::Read;
use std::io::{stdout, BufWriter, Write};
use std::cmp::min;

use std::collections::HashMap;

fn get_ans(x: i64) {
    //println!("{}", x);
    for i in 0..4096 {
        for j in -4096..4096 {
            let a = i as i64;
            let b = j as i64;
            if a.pow(5) - b.pow(5) == x {
                //println!("{} = {} {}",x, a, b);
                println!("{} {}",a, b);
                return;
            }
        }
    }
    //println!("{} :Not found", x);
}
 
fn main() {
    let mut buf = String::new();
    
    let out = stdout();
    let mut out = BufWriter::new(out.lock());
 
    std::io::stdin().read_to_string(&mut buf).unwrap();
 
    let mut iter = buf.split_whitespace();
 
    let x: i64 = iter.next().unwrap().parse().unwrap();
    
    get_ans(x);
    /*
    for i in 1..1_000 {
        get_ans(i);
    }
    */
}