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 Go (1.14.1) (judge verdict: Wrong Answer)

package main
import (
	"fmt"
	"math"
)
func main() {
	var x int
	fmt.Scanf("%d", &x)
	a, b := findPair(x)
	fmt.Printf("%d %d\n", a, b)
}

func findPair(x int) (int,int) {
	for i := 1; i < int(math.Pow(float64(x), 0.5)) + 1; i ++ {
		if x % i == 0 {
			a, b := getAnswer(i, x / i)
			if a != -1 {
				return a, b
			}
		}
	} 
	return -1, -1 // invalid state
}

func getAnswer(i, j int) (int, int) {
	x, y := i, j
	if x > y {
		x, y = y, x
	}
	// alpha = y, beta = x
	t := y - int(math.Pow(float64(x), 4))
	a := -10 * x
	b := 10 * x * x
	c := -5 * x * x * x
	for i:= 0; i < x; i++ {
		f := float64(i)
		if 5*int(math.Pow(f, 4)) + a * int(math.Pow(f, 3)) + b * int(math.Pow(f, 2)) + c * i == t {
			return i, i - x
		}
	}
	return -1, -1 // not found
}