403043: GYM100981 A Программист 80-го уровня
Description
Василий мечтает стать программистом k-го уровня. У него есть n дней чтобы осуществить задуманное — повысить свой уровень с 1-го до k-го. Для перехода с уровня x на уровень x + 1 необходимо с момента получения уровня x решить x задач.
В i-й день на одном известном сайте публикуются ai задач, при этом все они доступны для решения только в день публикации. Каждый день Василий решает задачи последовательно, одну за одной, при этом в i-й день он может решить не больше чем ai задач. Как только суммарное количество задач, решённых Василием с момента получения последнего уровня x, становится равно x, он останавливается и в этот день больше задач не решает. В этом случае в конце дня он совершает переход на следующий уровень x + 1. При этом задачи, которые Василий в этот день решить не успел, он не решит уже никогда.
Решённые задачи не накапливаются при переходе на следующий уровень, то есть для каждого x для перехода на уровень x + 1 Василию надо решить x задач, именно будучи программистом уровня x.
Василий может приступить к занятиям в любой день от 1 до n, при этом он хочет минимизировать разницу между номером дня, когда он станет программистом k-го уровня, и днём, когда он начнёт заниматься.
Входные данныеВ первой строке входных данных записаны два целых числа n и k (1 ≤ n ≤ 500, 2 ≤ k ≤ n + 1) — общее количество дней и уровень, которого Василий хочет достичь, соответственно.
Во второй строке находятся n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 500), где ai равно количеству доступных для решения задач в i-й день.
Выходные данныеВыведите единственное целое число — минимальное количество дней, в течение которых Василий сможет достичь k-го уровня программирования.
Если достичь желаемого Василию не удастся, выведите -1.
ПримерыВходные данные6 4Выходные данные
2 2 2 1 3 3
3Входные данные
12 5Выходные данные
1 1 1 1 1 1 1 1 1 1 1 1
10Входные данные
10 5Выходные данные
10 10 10 10 10 10 10 10 10 10
4Примечание
В первом примере Василий может приступить к занятиям в 4-й день:
- в 4-й день решить одну задачу и в конце дня перейти на уровень 2;
- в 5-й день решить две задачи из трёх и в конце дня перейти на уровень 3;
- в 6-й день решить все три задачи и в конце дня перейти на уровень 4.
Во втором примере Василию для перехода на 5-й уровень надо решить 1 + 2 + 3 + 4 = 10 задач. Так как каждый день он может решать не более одной задачи, ему понадобится 10 дней.
В третьем примере Василий может повышать уровень каждый день. Следовательно, ему достаточно 4-х дней.