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

using System;
using System.IO;
//因数分解は使わなくても解けます
//A^5-B^5=X
//X>0の時、A＞B
//AとBの差が大きい程、Xが大きくなるため、たくさんのA、Bの出すにはB=A-1とするとO(n^4)
class Program
{
    static void Main()
    {
        int x = int.Parse(Console.ReadLine());
        for(int a=1; a < 1000; a++)
        {
            long a5 = 1;
            for (int i = 0; i < 5; i++) a5 *= a;
            for(int b=-1000; b < 1000; b++)
            {
                long b5 = 1;
                for (int j = 0; j < 5; j++) b5 *= b;
                if (a5 - b5 == x)
                {
                    Console.Write(a + " "+b);
                    goto end;
                }
            }
        }
        end: Console.WriteLine();
    }
}


//original
//答えがマイナス含むとき解けない
//class Program
//{
//    static void Main()
//    {
//        int x = int.Parse(Console.ReadLine());
//        int target = 200 * (int)Math.Sqrt(5);
//        int[,] L = new int[5, target + 1];
//        for(int i = 0; i <= target; i++)
//        {
//            for(int j=0; j < 5; j++)
//            {
//                L[j, i] = (int)Math.Pow(i, j + 1);
//            }
//        }
//        for(int a = 0; a < target + 1; a++)
//        {
//            for(int b = 0; b < target + 1; b++)
//            {
//                if (a == b) continue;
//                int sum=0;
//                for (int k = 0; k < 5; k++)
//                {
//                    sum += L[k, a] * L[4 - k, b];
//                }
//                if (x == sum) 
//                {
//                    a++;b++;
//                    Console.Write(a + " " + b);
//                    goto end;
//                }
//                if (x > sum) break;
//            }
//        }
//        end: Console.WriteLine();
//    }
//}