Разность квадратов
Вы участвуете в разработке программного модуля для системы символьных вычислений. Модуль будет использоваться для решения специального вида диофантовых уравнений.
По заданному целому неотрицательному целому числу $n$ разрабатываемый модуль должен найти два натуральных числа $x$ и $y$, для которых выполнено равенство $x^2-y^2=n$. Найденные числа не должны превышать $2^{62}-1$.
Требуется написать программу, которая по заданному целому неотрицательному числу $n$ находит натуральные числа $x$ и $y$, не превышающие $2^{62}-1$, разность квадратов которых равна $n$.
В единственной строке дано одно целое число $n$ ($0 \le n \le 2^{60}$).
Обратите внимание, что заданное во вводе число не помещается в 32-битный тип данных, необходимо использовать 64-битный тип данных (например, «long long» в C++, «int64» в паскале, «long» в Java).
Если искомые $x$ и $y$ существуют, то необходимо вывести две строки: в первой строке выведите слово «Yes», а во второй — искомые $x$ и $y$.
Если подходящих пар $x$ и $y$ несколько, можно вывести любую из них, но должно выполняться условие $1 \le x, y \le 2^{62}-1$.
Если решения нет, в единственной строке необходимо вывести слово «No».
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
1 | 10 | $0 \le n \le 2^{10}$ | полная | |
2 | 20 | $0 \le n \le 2^{20}$ | 1 | полная |
3 | 30 | $0 \le n \le 2^{30}$ | 1, 2 | полная |
4 | 40 | $0 \le n \le 2^{60}$ | 1, 2, 3 | полная |
3
Yes 2 1
2
No
Задача на Codeforces (контест gym/102479, задача 1, © Codeforces.com)