Монеты для экспедиции

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

Submit solution


Очки: 140
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

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

Условие

Перед отправкой в дальнюю экспедицию нужно подготовить запас топлива ровно на S единиц.

На складе есть n типов топливных капсул. Капсулу типа i можно использовать сколько угодно раз, а каждая такая капсула добавляет ровно a_i единиц топлива.

Нужно определить, какое минимальное количество капсул потребуется, чтобы получить ровно S единиц топлива.

Если собрать ровно S единиц топлива невозможно, выведите -1.

Формат ввода

Первая строка содержит два целых числа n и S — количество типов капсул и требуемый запас топлива.

Вторая строка содержит n целых чисел a_1, a_2, ..., a_n — значения капсул.

Формат вывода

Выведите одно целое число:

  • минимальное количество капсул, необходимое для получения ровно S единиц топлива;
  • -1, если это невозможно.

Ограничения

  • 1 <= n <= 12
  • 1 <= S <= 10^4
  • 1 <= a_i <= 10^4

Пример 1

Ввод
3 11
1 2 5
Вывод
3

Пример 2

Ввод
3 3
2 4 6
Вывод
-1

Пример 3

Ввод
4 8
2 3 4 6
Вывод
2

Пояснение

В первом примере можно взять капсулы со значениями 5, 5 и 1, всего 3 капсулы.

Во втором примере получить ровно 3 единицы топлива нельзя.

В третьем примере достаточно взять две капсулы по 4.


Комментарии

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