CF234F Fence
题目描述
瓦西娅需要给自家小屋前的篱笆上漆。篱笆由一排 $n$ 块木板组成,每块木板宽 $1$ 厘米。我们把木板从左到右编号为 $1,2,\dots,n$。第 $i$ 块木板的高度为 $h_i$ 厘米。
瓦西娅有一支宽 $1$ 厘米的刷子和两种颜色的油漆:红色和绿色。当然,油漆的数量有限。瓦西娅计算了每种颜色能涂刷的面积。结果发现,他不能用红色涂刷超过 $a$ 平方厘米,不能用绿色涂刷超过 $b$ 平方厘米。篱笆的每一块木板都必须被完全涂上其中一种颜色(红色或绿色)。有可能有一种颜色并不会用到。
此外,瓦西娅希望他的篱笆看起来美观。为此,他要以使篱笆“不美观度”最小的方式进行涂漆。瓦西娅认为,如果两个相邻的木板被涂成不同的颜色,那么它们的共同边界就会显得不美观。“不美观度”定义为所有相邻且颜色不同的木板之间的接触长度之和。为了让篱笆尽可能美观,你需要最小化这个值。你的任务是,在完全涂好篱笆的前提下,求出瓦西娅可以得到的最小不美观度。
举例图片说明了情况:某个篱笆的高度分别为 $2,3,2,4,3,1$。第 1 和第 5 块木板被涂成红色,其他的被涂成绿色。第 1 和第 2 块之间的接触长度为 2,第 4 和第 5 块为 3,第 5 和第 6 块为 1。因此,该篱笆的不美观度为 $2+3+1=6$。
输入格式
第一行包含一个整数 $n$($1 \leq n \leq 200$),表示瓦西娅篱笆的木板数量。
第二行包含两个整数 $a$ 和 $b$($0 \leq a, b \leq 4\times 10^4$),分别表示最多能用红色和绿色涂刷的面积。
第三行包含 $n$ 个整数 $h_1, h_2, \dots, h_n$($1 \leq h_i \leq 200$),表示每块木板的高度。
输入中的所有数字均以空格隔开。
输出格式
输出一个整数,表示瓦西娅能获得的最小不美观度。如果无法将篱笆全部涂完,输出 $-1$。
说明/提示
由 ChatGPT 5 翻译