2174: Видалення

Переглянути як PDF

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

Бали: 15,00 (частково)
Ліміт часу: 0.15s
Python 3 0.5s
Ліміт памʼяті: 64M
Ввід: stdin
Вивід: stdout

Тип задачі

Дано послідовність з ~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

Коментарі

Будь ласка, прочитайте правила перед коментуванням.


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