Эффективное программирование
В некотором торговом центре есть N бутиков, расположенных по кругу. Даня повел по магазинам Веронику, которая хочет максимально долго ходить по бутикам. Поскольку Даня бывает в этом торговом центре не первый раз, он знает точное время на посещение каждого бутика вместе с Вероникой. Однако Даня тоже хочет зайти в спортмастер за новой штангой на что ему потребуется ровно K минут. Для этого Даня может попросить охранника Ваню закрыть несколько бутиков лентой, чтобы выиграть для себя это время. Но так как лента у Вани всего одна, он может закрыть один или несколько именно подряд идущих бутиков и при этом только один раз. Если таких вариантов несколько, необходимо выбрать тот, при котором будет закрыто минимальное количество подряд идущих бутиков, так как Вероника хочет посетить как можно больше из них.
Описание входных данных
В первой строки два числа N (1<= N <= K - количество бутиков) и K (необходимое время, выраженное в минутах). В следующих N строках приведено время в минутах на посещение каждого бутика.
Выходные данные: одно число – минимальное количество закрытых подряд идущих бутиков, экономящих ровно K минут для Дани.
Пример входных данных:
6 10
5
2
3
5
8
5
Можно перекрыть 1,2 и 3 бутик сэкономив 5+2+3 = 10 минут
Можно перекрыть 2,3 и 4 бутик сэкономив 2+3+5 = 10 минут
Можно перекрыть 1 и 6 бутик сэкономив 5+5 = 10 минут
Минимальное количество перекрытых подряд идущих бутиков равно 2.