E. Какие купюры
2000 мс · 256 МБ · всё или ничего
Банкомат выдаёт сумму банкнотами номиналов, запас каждого неограничен. Нужно не только наименьшее число банкнот, но и сами банкноты.
Представлений с наименьшим числом банкнот может быть несколько. Выведите номиналы в порядке невозрастания, а среди всех минимальных представлений — лексикографически наибольшее. Проще говоря: на каждом шаге берите самую крупную банкноту, с которой остаток ещё раскладывается на оставшееся число банкнот.
Формат ввода
Первая строка содержит число ().
Вторая строка содержит различных натуральных чисел, не превосходящих , — номиналы.
Третья строка содержит натуральное число ().
Формат вывода
Если выдать сумму невозможно, выведите .
Иначе в первой строке выведите количество банкнот, во второй — сами номиналы по невозрастанию.
Примеры
ввод
5 1 3 7 12 32 40
вывод
3 32 7 1
ввод
2 4 6 7
вывод
-1
Войдите, чтобы отправлять решения.