Задача:
Во время пробежки Флешу захотелось прокатиться на горках в парке развлечений. Перед ним три горки, записанные в виде массива целых чисел a1, a2, ..., an. Флешу разрешается прокатиться по любым двум горкам, стоящим рядом друг с другом, но длина прокатки (сумма элементов такой пары горок) не должна превышать числа x.
Флеш устал и намеревается сделать ровно k прокаток. Для каждой прокатки он выберет подходящую пару горок. Однако Флешу интересно, что самая длинная из прокаток будет минимальной возможной. То есть, для любой такой длины прокатки y найдется способ прокатиться по горкам суммарно за y единиц без остатка, но нельзя сделать ни одной прокатки на длине меньше y.
Напишите программу, которая найдет минимальную длину таких прокаток для Флеша.
Формат ввода
В первой строке два целых числа n и x (2 ≤ n ≤ 2000, 1 ≤ x ≤ 109) — количество горок и максимальная возможная сумма двух горок.
Во второй строке n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109) — массив горок.
В третьей строке одно число k (1 ≤ k ≤ 2000) — количество прокаток.
Формат вывода
Выведите одно целое число — минимально возможную длину таких прокаток для Флеша.
Примечания
В первом примере Флеш может прокатиться по горкам так: создать четыре прокатки на горках с суммарной длиной 4, 2, 4 и 6 соответственно.
Во втором примере Флеш может прокатиться по горкам так: создать две прокатки на горках с суммарной длиной 3 и еще две прокатки на горках с суммарной длиной 5.
В третьем примере какая бы прокатка не была, она все равно будет иметь длину больше 3.
Рассмотрим первый пример:
У нас есть 6 горок, из них мы можем комбинировать по 2 рядом. Т.е на выходе получится 5 пар горок, которые Флэш будет едновременно проходить.
length = [3, 2, 1, 2, 2]
Далее необходимо рассчитать, каким будет сумма каждого варианта поездки.
То есть флэш может прокатится так:
6, 3 - сумма = 9, и эта сумма будет единственной
6, 2, 1 - сумма = 9, 11, 9
6, 2, 2 - сумма = 9, 11, 11
...
3, 2, 2, 2, 1, 1 - сумма = 3, 5, 7, 9, 11, 13
...
Далее речь идет, что надо выбрать оптимальное числа прокаток. То есть мы можем сделать прокатку на 9, 11, 13, потом прокатку на 9, 11, 13 и так можно до бесконечности
Также есть условие о недопустимости условияи прокаток менее определенного числова к... изначально мы можжем сделать эти прокатки в любой момент, но последня составная часть задачи говорит, что мы должны вожать одну прокатку на данный диапазон, то каждая цифра такого прокатая будет уникальна в более крупной прокатке и это будет самая минимальная прокатка.
To be continued....