Расширенный алгоритм Евклида
Просмотр в формате PDFВ лаборатории модулярной арифметики исследователи работают с двумя положительными числами a и b. Для настройки вычислительного стенда нужно подобрать коэффициенты Безу — такие целые числа x и y, чтобы выполнялось равенство
a * x + b * y = gcd(a, b)
где gcd(a, b) — наибольший общий делитель чисел a и b.
Требуется найти любое подходящее целое решение (x, y), а также само значение g = gcd(a, b).
Гарантируется, что такое решение всегда существует.
Входные данные
В единственной строке через пробел записаны два целых положительных числа a и b.
Выходные данные
Выведите в одной строке через пробел три целых числа g, x, y, где g = gcd(a, b) и выполнено равенство a * x + b * y = g.
Если допустимых ответов несколько, разрешается вывести любой из них, но значения |x| и |y| не должны превосходить 10^18.
Ограничения
1 <= a, b <= 10^9
Примеры
Пример 1
Входные данные
1 1
Выходные данные
1 0 1
Пример 2
Входные данные
1 2
Выходные данные
1 1 0
Комментарии