LG-P1209. 【GESP强化 五级】修理牛栏(Barn Repair)

提交1 通过1
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

一个漆黑的暴风雨之夜,农夫约翰的牛栏屋顶和栏门被吹坏了。幸运的是,许多奶牛正在外面度假,牛栏并没有住满。

这些牛栏宽度相同,首尾相邻地排成一行,编号为 11 到 SS。有些牛栏里有奶牛,有些是空的。

约翰需要尽快用木板挡住所有住着奶牛的牛栏。木板的长度可以任意选择,但供应商最多只能提供 MM 块木板。一块木板可以连续挡住若干个相邻的牛栏,也可以经过空牛栏。

已知最多能购买的木板数 MM、牛栏总数 SS、有奶牛的牛栏数 CC,以及这 CC 个牛栏的编号。请在挡住所有有奶牛的牛栏的前提下,求需要挡住的牛栏总数的最小值,也就是以一个牛栏宽度为单位的木板最小总长度。

输入格式

第一行三个整数 M,S,CM,S,C,用空格分隔。

接下来 CC 行,每行一个整数,表示一个有奶牛的牛栏编号。

输出格式

输出一个整数,表示至少需要挡住的牛栏总数。

样例输入 1

4 50 18
3 
4 
6 
8 
14
15 
16 
17 
21
25 
26 
27 
30 
31 
40 
41 
42 
43

样例输出 1

25

样例输入 2

1 1 1
1

样例输出 2

1

样例输入 3

42 4 1
1

样例输出 3

1

说明/提示

样例 1 的一种最优方案是:四块木板分别挡住编号 3∼83\sim8、14∼2114\sim21、25∼3125\sim31、40∼4340\sim43 的牛栏,总长度为 6+8+7+4=256+8+7+4=25。

数据范围

数据范围:1≤M≤501\le M\le 50,1≤S≤2001\le S\le 200,1≤C≤S1\le C\le S,每个牛栏编号均在 11 到 SS 之间。