Олимпиадный тренинг

Задача . A. Tokitsukaze и выбрасывание вещей


Недавно Tokitsukaze нашла интересную игру. У Tokitsukaze было \(n\) вещей в начале игры. Тем не менее, она подумала, что их слишком много, поэтому она хочет выбросить \(m\) (\(1 \le m \le n\)) выбранных вещей среди них.

Эти \(n\) вещей пронумерованы от \(1\) до \(n\). Вначале вещь с индексом \(i\) лежит на \(i\)-й позиции. Вещи разделены на несколько страниц по порядку, так что каждая страница содержит ровно \(k\) позиций, и несколько позиций на последней странице могут быть пустыми.

Tokitsukaze будет совершать следующую операцию: обращать внимание на первую страницу, содержащую хотя бы одну выбранную вещь, и одновременно сбрасывать все выбранные вещи на этой странице. После того, как вещь выброшена или перемещена, ее старая позиция станет пуста, и после этого вещь за ней, если она существует, передвинется на эту пустую позицию. Это движение может перенести много вещей вперед, даже на предыдущие страницы, поэтому Tokitsukaze будет ждать, пока все вещи перестанут двигаться, и затем продолжит повторять эту операцию (проверять первую страницу с выбранными предметами и удалять их) пока не останется вещей, которые нужно выбросить.

Рассмотрим первые пример из условия: \(n=10\), \(m=4\), \(k=5\), \(p=[3, 5, 7, 10]\). Есть две страницы. Изначально первая страница содержит выбранную вещь. Поэтому Tokitsukaze выбрасывает выбранные вещи \(3\) и \(5\). После этого, первая страница все еще содержит выбранную вещь, однако теперь другую. Она содержит \([1, 2, 4, 6, 7]\), Tokitsukaze выбрасывает выбранную вещь под номером \(7\). Затем, Tokitsukaze интересна вторая страница (поскольку это первая страница, содержащая выбранную вещь). Она содержит \([9, 10]\), Tokitsukaze выбрасывает выбранную вещь \(10\).

Tokitsukaze хочет узнать, сколько всего операций она совершит в ходе этого процесса.

Входные данные

В первой строке записаны три целых числа \(n\), \(m\) и \(k\) (\(1 \le n \le 10^{18}\), \(1 \le m \le 10^5\), \(1 \le m, k \le n\)) — количество вещей, количество выбранных вещей и количество позиций на каждой странице.

Во второй строке записаны \(m\) различных целых чисел \(p_1, p_2, \ldots, p_m\) (\(1 \le p_1 < p_2 < \ldots < p_m \le n\)) — индексы выбранных вещей.

Выходные данные

Выведите одно число — количество операций, которые суммарно сделает Tokitsukaze.

Примечание

Первый пример был разобран в условии.

Во втором примере Tokitsukaze обратит внимание на вторую страницу \([6, 7, 8, 9, 10]\) и удалит все выбранные вещи за одну операцию.


Примеры
Входные данныеВыходные данные
1 10 4 5
3 5 7 10
3
2 13 4 5
7 8 9 10
1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w641
Комментарий учителя