0398. Преобразование последовательности

Имя входного файла: seq.in
Имя выходного файла: seq.out
Ограничение по времени: 2 s
Ограничение по памяти: 256 megabytes

Учительница математики очень не любит Колю и всегда заставляет его отвечать у доски самые сложные задачи.

Вот и сегодня она написала на доске последовательность из n целых неотрицательных чисел чисел a1, a2, …, an и вызвала Колю к доске. За одно действие учительница разрешает Коле стереть любое число и на его место записать число на единицу больше. Учительница требует от Коли за минимальное число действий добиться того, чтобы где-нибудь в этой последовательности встречались подряд в возрастающем порядке числа от 1 до h.

Помогите Коле понять, за какое минимальное число действий ему удастся добиться того, что для некоторого i будет выполнено ai=1, ai+1=2, …, ai+h-1=h, или выясните, что это невозможно и учительница опять безнаказанно издевается над бедным Колей.

Формат входного файла

Первая строка входного файла содержит два натуральных числа: n и h (1 ≤ h ≤ n ≤ 200,000). Вторая строка содержит n чисел ai – исходные значения элементов выписанной последовательности (0 ≤ ai ≤ n).

Формат выходного файла

В единственной строке выходного файла выведите минимальное количество действий, за которое Коля сможет выполнить задание, или -1 в случае, если выполнить его невозможно.

Пример:

seq.inseq.out
4 3 1 1 0 2 3
3 2 1 3 2 -1

В первом примере Коле надо дважды увеличить на 1 третье число и один раз – четвертое. Тогда последовательность примет вид 1, 1, 2, 3, для i=2 выполнено искомое условие.

Во втором примере получить в последовательности подряд 1 и 2 невозможно.


Источник: Командное школьное первенство Республики Карелия. Ноябрь 2014.

Обсудить       Отправить решение



Версия для печати