#UT136. [USACO1.3.6] 滑雪课程设计 Ski Course Design

[USACO1.3.6] 滑雪课程设计 Ski Course Design

滑雪课程设计

农民约翰的农场上有N个山丘(1 <= N <= 1,000),每个山丘的海拔高度为0到100之间的整数。在冬季,由于这些山丘上有丰厚的雪,FJ常常经营一个滑雪训练营。

不幸的是,FJ刚刚得知明年将对作为滑雪训练营的农场征收新税。仔细阅读法律后,他发现滑雪营的正式定义要求他农场上最高和最低的山丘之间的差距严格大于17。因此,如果他降低最高山丘的高度,并增加较低山丘的高度,FJ可以避免缴税,只要新最高和最低山丘之间的差距不超过17。

如果将一座山丘的高度改变x个单位需要花费x^2单位的钱,FJ需要支付的最低金额是多少?FJ只能对每个山丘的高度进行一次修改,因此每座山丘的总成本是其原始高度和最终高度之间差异的平方。FJ只愿意将每座山丘的高度以整数单位进行修改。

程序名称:skidesign

输入格式:

  • 第1行:一个整数N。
  • 第2行到第1+N行:每行包含一个山丘的海拔高度。

示例输入(文件 skidesign.in):

5
20
4
1
24
21

输入详情:

FJ的农场有5座山丘,海拔分别为1、4、20、21和24。

输出格式:

FJ需要支付的最低金额,以修改山丘的高度,使得最高和最低山丘之间的差距至多为17个单位。

示例输出(文件 skidesign.out):

18

输出详情:

FJ保留海拔为4、20和21的山丘不变。他将海拔为1的山丘抬高到4,高度变化成本为3^2 = 9。然后,他将海拔为24的山丘降低到21,成本同样为3^2 = 9。