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

Бали: 15,00 (partial)
Time limit: 0.15s
Python 3 0.5s
Memory limit: 64M
Input: stdin
Output: stdout

Problem type

Дано послідовність з ~n~ цілих чисел. Виконуємо таку операцію: видаляємо перший або останній елемент послідовності. Це призводить до нової послідовності з одним елементом меншим за попередню. Ми виконуємо ту саму операцію над новою послідовністю знову та повторюємо цю операцію багаторазово, доки послідовність не матиме елементів.

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

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

Перший рядок містить два цілих чисел ~n~ та ~k~ (~0 < n ≤ 10^6~, ~0 < k ≤ 10^5~).

Другий рядок містить елементи заданої послідовності, розділені пробілами. Числа в заданій послідовності є цілими, невід'ємними та меншими за 300.

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

У єдиному рядку виведіть одне ціле число – необхідна мінімальна кількості операцій. Коли неможливо отримати суму видалених чисел, що дорівнює ~k~, виведіть число -1.

Система оцінювання:

Бали за кожен тест нараховуються окремо.

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

5 3
1 1 1 2 2

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

2

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

3 5
1 6 2

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

-1

Коментарі

Please read the guidelines before commenting.


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