#6568. 修理牛棚 Barn Repair

修理牛棚 Barn Repair

题目描述

在一个月黑风高的暴风雨夜,农夫约翰的牛棚屋顶和门被吹飞了。好在许多牛正在度假,牛棚并没有住满。
牛棚一个紧挨着另一个排成一行,牛就在里面过夜。有些牛棚里有牛,有些没有。所有牛棚的宽度相同。

自门遗失以后,农夫约翰必须尽快在牛棚前竖立起新的木板。他的新木材供应商可以供应任意长度的木板,但供应商比较吝啬,只能提供有限数目的木板。农夫约翰想让他购买的木板总长度尽量短。

给出木板的最大数目 mm、牛棚的总数 ss、牛的总数 cc,以及每头牛所在牛棚的编号,请你计算拦住所有有牛的牛棚所需木板的最小总长度。

输入格式

第一行包含三个整数 m,s,cm, s, c,含义如下:

  • mm:能购买的最大木板数量(1m501 \le m \le 50),
  • ss:牛棚总数(1s2001 \le s \le 200),
  • cc:牛的总数(1cs1 \le c \le s)。

接下来 cc 行,每行一个整数,表示一头牛所在的牛棚编号。牛棚编号在 11ss 之间。

输出格式

输出一行一个整数,表示拦住所有有牛牛棚所需木板的最小总长度。

2 10 5
2
3
5
8
9
6

样例 1 解释
最多能使用 22 块木板,共 55 头牛,住在编号 2,3,5,8,92, 3, 5, 8, 9 的牛棚里。最优方案:

  • 一块木板覆盖 252 \sim 5(包含 2,3,52,3,544 无牛也被覆盖),长度 44
  • 一块木板覆盖 898 \sim 9,长度 22
    总长度为 4+2=64+2=6
4 50 18
3 
4 
6 
8 
14
15 
16 
17 
21
25 
26 
27 
30 
31 
40 
41 
42 
43
25

样例 2 解释
木板最多 44 块,覆盖方案如下:

  • 一块木板覆盖 383 \sim 8,长度 66
  • 一块木板覆盖 142114 \sim 21,长度 88
  • 一块木板覆盖 253125 \sim 31,长度 77
  • 一块木板覆盖 404340 \sim 43,长度 44
    总长度 6+8+7+4=256+8+7+4=25