J. Наименьшее кратное
3000 мс · 256 МБ · всё или ничего
Дано число и набор цифр . Допишите к справа наименьшее количество цифр из так, чтобы получившееся число делилось на . Среди таких чисел выведите наименьшее.
Само число может быть чудовищно длинным, и перебирать его нельзя. Зато состояние — это остаток по модулю , а их всего . Приписывание цифры переводит остаток в ; получается граф на вершинах, и нужен кратчайший путь из остатка в ноль.
Чтобы среди кратчайших получилось наименьшее число, цифры на каждом шаге перебираются по возрастанию.
Формат ввода
Первая строка содержит число (до 1000 цифр, без ведущих нулей) и число ().
Вторая строка содержит количество цифр в наборе, третья — сами цифры через пробел.
Формат вывода
Наименьшее подходящее число или , если его не существует.
Примеры
ввод
102 101 3 1 0 3
вывод
10201
ввод
2 4 1 3
вывод
-1
Войдите, чтобы отправлять решения.