Расширенный алгоритм Евклида

Просмотр в формате PDF

Submit solution


Очки: 150
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Автор:
Problem types
Allowed languages
C++, Python

В лаборатории модулярной арифметики исследователи работают с двумя положительными числами 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

Комментарии

Еще нет ни одного комментария.