Коробки з сувенірами#7766

Коробки з сувенірами

1 секунда
128 мегабайтів
Дуже легка

На церемонії відкриття IOI 2015 відбувається остання дія. Кожна команда повинна отримати сувенір від країни-організатора. Але волонтери настільки захоплені церемонією, що забули про сувеніри. Єдиний, хто пам'ятає про них, — це Аман. Він ентузіаст і хоче, щоб усі команди отримали сувеніри якомога швидше.

Зал, де проходить церемонія, має круглу форму і поділений на однакових секторів, пронумерованих від до l - 1. Сектори та i + 1 є сусідніми для всіх від до l - 2, а сектор l - 1 сусідній з сектором . У залі знаходяться команд, кожна з яких сидить в одному з секторів. Деякі сектори можуть бути порожніми.

Є однакових сувенірів. Спочатку Аман і всі сувеніри знаходяться в секторі . Аман повинен роздати по одному сувеніру кожній команді і повернутися в сектор після того, як віддасть останній сувенір. В секторі також можуть бути команди.

Аман може нести не більше сувенірів одночасно. Він бере сувеніри в секторі миттєво. Кожен сувенір потрібно доставити до команди. Коли Аман досягає сектора з командами, які ще не отримали сувеніри, він може роздати сувеніри миттєво. Єдиний час, який витрачається, — це час на пересування між секторами. Аман може рухатися по колу в обох напрямках. Перехід до сусіднього сектора (в будь-якому напрямку) займає одну секунду, незалежно від кількості сувенірів, які він несе.

Ваше завдання — визначити мінімальну кількість секунд, необхідну Аману для доставки всіх сувенірів і повернення в сектор .

Вхідні дані

Перша строка містить три числа: кількість команд , максимальна кількість сувенірів, яку може нести Аман , і кількість секторів (1 \leq n \leq 10^7, 1 \leq k \leq n, 1 \leq l \leq 10^9). Друга строка містить масив positions довжини . Елементи масиву positions[0], ..., positions[n - 1] задають номери секторів, в яких знаходяться команди. Елементи масиву positions впорядковані в неубувному порядку.

Вихідні дані

Виведіть мінімальну кількість секунд, необхідну Аману для виконання завдання.

Приклади

У цьому прикладі є три команди (n = 3) і секторів (l = 8), а Аман може нести два сувеніри (k = 2). Команди знаходяться в секторах , і .

prb7766.gif

Одне з оптимальних рішень показано на рисунку. За перший прохід Аман бере два сувеніри, передає один команді в секторі , другий — команді в секторі , і повертається в сектор . Це займає секунд. За другий прохід Аман доставляє останній сувенір команді в секторі і повертається в сектор . Це займає ще секунди. Загальний час доставки — секунд.

Приклад 1

Loading
Loading