printРабочее место участника

printЗадачи

2244. Деление

Ограничения: время – 2s/2s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0) idea

Сегодня Леша проходил в школе деление столбиком. На дом ему задали вычислить частное двух больших чисел: `n` и `m`. Леша уже попробовал решить пример, но, неожиданно для себя, понял, что `n` на `m` не делится. Он уверен, что учитель задавал пример, в котором результат не имеет остатка, поэтому он предположил, что допустил ошибку при переписывании примера с доски.
Теперь он хочет исправить несколько цифр в числе `n`, чтобы оно стало делиться на `m`. При этом, Леша хочет, чтобы новое число отличалось от записанного у него в минимальном количестве позиций.
Числа, записанные Лешей, не имеют ведущих нулей, он уверен, что числа, записанные на доске, также не имели ведущих нулей, поэтому и в новом числе их не должно быть. Само число 0 при этом является допустимым.
Помогите Леше.
В единственной строке входного файла находятся два целых числа `n`, `m` (`0\ ≤\ n\ ≤\ 10^{11}`, `1\ ≤\ m\ ≤\ 10^{11}`).
В единственной строке выходного файла выведите одно целое число – результат изменения минимального числа цифр в числе `n`, чтобы полученное число не имело ведущих нулей и делилось на `m`.
Если ответов несколько, можете вывести любой. Если ответа не существует, выведите `-1`.

Пример ввода 1

123 10

Пример ввода 1

120

Пример ввода 2

123 141

Пример ввода 2

423

Пример ввода 3

9 123

Пример ввода 3

0

Пример ввода 4

12 123

Пример ввода 4

-1
Источник: XXIII Командный чемпионат школьников Санкт-Петербурга по программированию, 2015
loading