Codeforces Global Round 1 |
---|
Закончено |
У вас есть длинная палка, состоящая из $$$m$$$ отрезков, пронумерованных от $$$1$$$ до $$$m$$$. Каждый отрезок имеет длину равную $$$1$$$ сантиметру. Однако, некоторые отрезки сломались и требуют починки.
У вас также есть бесконечно-длинная ремонтная лента. Вы хотели бы вырезать несколько кусочков из этой ленты так, чтобы покрыть все сломанные отрезки. В частности, если разместить кусок ленты целой длины $$$t$$$ в позиции $$$s$$$, то отрезки $$$s, s+1, \ldots, s+t-1$$$ окажутся покрытыми.
Разрешается покрывать не сломанные отрезки, также допускается, что какие-то кусочки ленты будут пересекаться.
Как говорится, время — деньги, поэтому вы хотите покрыть все сломанные отрезки, вырезав не более $$$k$$$ кусочков ленты. Какую минимальную суммарную длину этих кусочков нужно вырезать?
Первая строка содержит три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ ($$$1 \le n \le 10^5$$$, $$$n \le m \le 10^9$$$, $$$1 \le k \le n$$$) — количество сломанных отрезков, длину палки, а также максимальное количество кусочков ленты, которые можно вырезать.
Вторая строка содержит $$$n$$$ целых чисел $$$b_1, b_2, \ldots, b_n$$$ ($$$1 \le b_i \le m$$$) — позиции сломанных отрезков. Эти числа даны в возрастающем порядке, то есть $$$b_1 < b_2 < \ldots < b_n$$$.
Выведите минимальную суммарную длину кусочков ленты.
4 100 2
20 30 75 80
17
5 100 3
1 2 4 60 87
6
В первом примере вы можете использовать кусок длины $$$11$$$, чтобы покрыть сломанные отрезки $$$20$$$ и $$$30$$$, и ещё один кусок длины $$$6$$$, чтобы покрыть $$$75$$$ и $$$80$$$, так что суммарная длина равна $$$17$$$.
Во втором примере вы можете вырезать кусок длины $$$4$$$, чтобы покрыть сломанные отрезки $$$1$$$, $$$2$$$, $$$4$$$, и два куска длины $$$1$$$, чтобы покрыть $$$60$$$ и $$$87$$$.
Название |
---|