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# (.NET Core 3.1.201) (judge verdict: Wrong Answer)

using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;

class Program
{
    static void Main(string[] args)
    {
        var X = int.Parse(ReadLine());

        // 素因数分解
        var primeFactor = new List<(int, int)>();
        var rootN = Math.Sqrt(X);
        var n = X;

        for (int i = 2; i <= rootN; i++)
        {
            if (n % i == 0)
            {
                var x = 0;
                do
                {
                    x++;
                    n /= i;
                } while (n % i == 0);

                primeFactor.Add((i, x));
            }
        }

        if (rootN < n)
        {
            primeFactor.Add((n, 1));
        }

        var right = new List<(int, int)>();
        right.Add((1, X));
        foreach (var (i, x) in primeFactor)
        {
            right.Add((i, X / i));
        }
        right.Add((X, 1));

        foreach (var (r1, r2) in right)
        {
            for (int a = 0; a < 1000; a++)
            {
                var b = a - r1;

                var l2 = 
                    Math.Pow(a, 4) + 
                    Math.Pow(a, 3) * b +
                    Math.Pow(a, 2) * Math.Pow(b, 2) +
                    a * Math.Pow(b, 3) +
                    Math.Pow(b, 4);

                if((int)(l2 + 0.001) == r2 || (int)(l2 - 0.001) == r2)
                {
                    WriteLine($"{a} {b}");
                    return;
                }
            }
        }
    }
}