Codeforces Round 573 (Div. 1) |
---|
Закончено |
Недавно Tokitsukaze нашла интересную игру. У Tokitsukaze было $$$n$$$ вещей в начале игры. Тем не менее, она подумала, что их слишком много, поэтому она хочет выбросить $$$m$$$ ($$$1 \le m \le n$$$) выбранных вещей среди них.
Эти $$$n$$$ вещей пронумерованы от $$$1$$$ до $$$n$$$. Вначале вещь с индексом $$$i$$$ лежит на $$$i$$$-й позиции. Вещи разделены на несколько страниц по порядку, так что каждая страница содержит ровно $$$k$$$ позиций, и несколько позиций на последней странице могут быть пустыми.
Tokitsukaze будет совершать следующую операцию: обращать внимание на первую страницу, содержащую хотя бы одну выбранную вещь, и одновременно сбрасывать все выбранные вещи на этой странице. После того, как вещь выброшена или перемещена, ее старая позиция станет пуста, и после этого вещь за ней, если она существует, передвинется на эту пустую позицию. Это движение может перенести много вещей вперед, даже на предыдущие страницы, поэтому Tokitsukaze будет ждать, пока все вещи перестанут двигаться, и затем продолжит повторять эту операцию (проверять первую страницу с выбранными предметами и удалять их) пока не останется вещей, которые нужно выбросить.
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.
10 4 5 3 5 7 10
3
13 4 5 7 8 9 10
1
Первый пример был разобран в условии.
Во втором примере Tokitsukaze обратит внимание на вторую страницу $$$[6, 7, 8, 9, 10]$$$ и удалит все выбранные вещи за одну операцию.
Название |
---|