Автор: | Центральная предметно-методическая комиссия | Ограничение времени: | 1 сек | |
Входной файл: | Стандартный вход | Ограничение памяти: | 512 Мб | |
Выходной файл: | Стандартный выход | |||
Максимальный балл: | 100 |
Вы участвуете в разработке программного модуля для системы символьных вычислений. Модуль будет использоваться для решения специального вида диофантовых уравнений.
По заданному целому неотрицательному целому числу n разрабатываемый модуль должен найти два натуральных числа x и y, для которых выполнено равенство x2−y2=n. Найденные числа не должны превышать 262−1.
Требуется написать программу, которая по заданному целому неотрицательному числу n находит натуральные числа x и y, не превышающие 262−1, разность квадратов которых равна n.
В единственной строке дано одно целое число n (0 ≤ n ≤ 260).
Обратите внимание, что заданное во вводе число не помещается в 32-битный
тип данных, необходимо использовать 64-битный тип данных (например,
long long
в C++, int64
в Паскале, long
в Java).
Если искомые x и y существуют, то необходимо вывести две строки: в первой строке выведите слово Yes, а во второй — искомые x и y.
Если подходящих пар x и y несколько, можно вывести любую из них, но должно выполняться условие 1 ≤ x, y ≤ 262−1.
Если решения нет, в единственной строке необходимо вывести слово No.
0 ≤ n ≤ 260
1 ≤ x, y ≤ 262−1
Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.
Подзадача | Баллы | Ограничения | Необходимые подзадачи | Информация о проверке |
---|---|---|---|---|
1 | 10 | 0 ≤ n ≤ 210 | полная | |
2 | 20 | 0 ≤ n ≤ 220 | 1 | полная |
3 | 30 | 0 ≤ n ≤ 230 | 1,2 | полная |
4 | 40 | 0 ≤ n ≤ 260 | 1,2,3 | полная |
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 |
|
|
2 |
|
|