Надіслати розв'язок

Бали: 3,00
Time limit: 1.0s
Python 3 2.0s
Memory limit: 256M
Python 3 1G
Input: stdin
Output: stdout

Problem type

У деякій державі в обігу перебувають банкноти певних номіналів. Національний банк хоче, щоб банкомат видавав будь-яку запитану суму за допомогою мінімального числа банкнот, вважаючи, що запас банкнот кожного номіналу необмежений. Допоможіть Національному банку вирішити цю задачу.

Вхідні дані

Перший рядок містить натуральне число ~N~, що не перевищує 50 – кількість номіналів банкнот у обігу. Другий рядок вхідних даних містить ~N~ різних натуральних чисел ~x_1~, ~x_2~, ..., ~x_N~, що не перевищують ~10^5~ – номінали банкнот. Третій рядок містить натуральне число ~S~, що не перевищує ~10^5~ – суму, яку необхідно видати.

Результати

Програма повинна вивести єдине число – знайдену мінімальну кількість банкнот. Якщо видати вказану суму вказаними банкнотами неможливо, програма повинна вивести рядок No solution.

Приклади

Вхід 1

7
1 2 5 10 20 50 100
72

Результат 1

3

Вхід 2

2
20 50
60

Результат 2

3

Примітки

У першому тесті, 72 можна видати трьома банкнотами 50, 20 і 2. У другому, 60 можна видати трьома банкнотами 20, 20 і 20.


Коментарі

Please read the guidelines before commenting.


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