bzoj#P2135. 刷题计划

刷题计划

题目描述

为了提高自己的实力, gx 想要制定一个合理的刷题计划。这里我们用实数来表示题目的难度,并且把刷题计划中由题目难度组成的序列称为刷题序列。gx 刷题最喜欢循序渐进的方式,最理想的情况莫过于刷题序列是个等差数列了。但是这很难做到,于是我们定义一个刷题序列 aa 的偏移值 p(a)i=2n(aiai1L)2p(a)-\sum\limits_{i = 2}^{n}(a_i-a_{i-1}-L)^2​,其中 LL 是给定的一个常数。

现在 gx 的老师已经布置给他 nn 道必做题,同时他还有空余时间从 OJ 上找 mm 道题来刷。他不希望改变这 nn 道必做题的相对顺序,但是选做题的难度以及在数列中的位置都是任意的(OJ 上的题目太多了,随你怎么挑)。

gx 希望你帮他设计一个刷题序列,使得该序列的偏移值最小。

输入格式

输入的第一行包含三个数:n,m,Ln, m, Lnn 是整数,表示必做题有 nn 道, mm 是整数,表示选做题有 mm 道,LL 是实数。

第二行包含 nn 个实数,依次表示每道必做题的难度。

输出格式

输出一个实数,表示最小的偏离值。保留三位小数。

4 3 1.0
1 4 5 3
8.000

样例解释

将原序列 (1,4,5,3)(1,4,5,3) 变成 (1,2,3,4,5,4,3)(1,2,3,4,5,4,3) ,偏离值为 8.008.00

数据范围

对于 50%50\% 的数据,L=0L=0

对于 100%100\% 的数据, 1n5×1041\le n\le 5\times 10^41m1081\le m\le 10^8100L100-100\le L\le 1001ai1001\le |a_i|\le 100