10859. Найменше кратне


Відправити розв'язок

Бали: 100
Time limit: 3.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Дано число \(X\) і множина цифр \(D\). Потрібно дописати до \(X\) мінімальну кількість цифр з \(D\), щоб число, що вийшло, ділилося на \(k\). При цьому число, що вийшло, повинно бути мінімально можливим.

Формат вхідних даних

Перший рядок містить два натуральні числа \(X\) і \(k\) (\(1 ≤ X ≤ 10^{1000}\), \(2 ≤ k ≤ 10^5\)).

У другому рядку записано кількість цифр у множині \(D\).

У третьому рядку через пропуск записані ці цифри (якщо множина \(D\) порожня, то третього рядка у вхідних даних немає, що важливо при зчитуванні даних по рядках).

Формат вихідних даних

Єдиний рядок повинен містити мінімальне число, отримане з \(X\) дописуванням цифр \(D\) і кратне \(k\). Якщо такого числа немає, виведіть -1.

Приклад вхідних даних

102 101
3
1 0 3

Приклад вихідних даних

10201

Приклад вхідних даних

202 101
3
1 0 3

Приклад вихідних даних

202

Коментарі

Ще немає коментарів.