#L2087. 「NOI2016」国王饮水记

    ID: 4883 传统题 1500ms 256MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>难度NOI/NOI+动态规划高精度斜率优化贪心其他排序

「NOI2016」国王饮水记

题目描述

跳蚤国有 nn 个城市,伟大的跳蚤国王居住在跳蚤国首都,即 11 号城市。

跳蚤国最大的问题就是饮水问题。由于首都居住的跳蚤太多,跳蚤国王将自己分配的水也分给居民饮用,导致国王经常喝不上水。

于是,跳蚤国在每个城市都修建了一个完全相同且足够高的圆柱形水箱。一个雨天后,第 ii 个城市收集到了高度为 hih_i 的水。由于地理和天气因素的影响,任何两个不同城市收集到的水高度互不相同。

跳蚤国王请来蚂蚁工匠,建立了一个庞大的地下连通系统。跳蚤国王每次使用地下连通系统时,可以指定任意多的城市,将这些城市的水箱用地下连通系统连接起来足够长的时间后,再关闭系统。由连通器原理,这些城市的水箱中的水在这次操作后会到达同一高度,且该高度等于指定的各水箱高度的平均值。

由于地下连通系统的复杂性,跳蚤国王至多只能使用 kk 次地下连通系统。

跳蚤国王请你告诉他,首都 11 号城市水箱中的水位最高能有多高?


输入格式

输入的第一行包含三个正整数 n,k,pn, k, p,分别表示城市数量、可使用地下连通系统的最多次数,以及输出答案要求的精度。pp 的含义将在输出格式中解释。

接下来一行包含 nn 个正整数,描述城市的水箱在雨后的水位。其中第 ii 个正整数 hih_i 表示第 ii 个城市的水箱的水位。保证 hih_i 互不相同,且 1hi1051 \leq h_i \leq 10^5


输出格式

仅一行一个实数,表示 11 号城市的水箱中的最高水位。

这个实数只可以包含非负整数部分、小数点和小数部分。其中非负整数部分为必需部分,不加正负号。若有小数部分,则非负整数部分与小数部分之间以一个小数点隔开。若无小数部分,则不加小数点。

你输出的实数在小数点后不能超过 2p2p 位,建议保留至少 pp 位。数据保证参考答案与真实答案的绝对误差小于 102p10^{-2p}

你的输出被判定为正确当且仅当你的输出与参考答案的绝对误差小于 10p10^{-p}

如果你的输出与参考答案的绝对误差不小于 10p10^{-p} 但小于 10510^{-5},你可以获得该测试点 40%40\% 的分数。


样例 1

输入:

3 1 3
1 4 3

输出:

2.666667

由于至多使用一次地下连通系统,有以下五种方案:

  1. 不使用地下连通系统:此时 11 号城市的水箱水位为 11
  2. 使用一次连通系统,连通 1122 号:此时 11 号城市的水箱水位为 52\frac{5}{2}
  3. 使用一次连通系统,连通 1133 号:此时 11 号城市的水箱水位为 22\frac{2}{2}
  4. 使用一次连通系统,连通 2233 号:此时 11 号城市的水箱水位为 11
  5. 使用一次连通系统,连通 112233 号:此时 11 号城市的水箱水位为 83\frac{8}{3}

样例 2

输入:

3 2 3
1 4 3

输出:

3.000000

此时最优方案为使用两次连通系统,第一次连通 1,31,3 号,第二次连通 1,21,2 号。 见附加文件。


数据范围与提示

提示
为保证答案精度,我们一般需要尽可能地在运算过程中保留超过 pp 位小数。可以证明,在任何时候始终保留 65p\frac{6}{5}p 位小数时,对任何输入得到的输出,与参考答案的绝对误差都小于 10p10^{-p}

为了方便选手处理高精度小数,我们提供了定点高精度小数类。选手可以根据自己的需要参考与使用该类,也可以不使用该类。具体使用方法请参考下发的文档 decimal.pdf

数据范围

测试点编号 nn kk pp
1 2\le 2 5\le 5 =5=5
2 4\le 4
3
4 10\le 10 =1=1
5 =109=10^9
6 10\le 10
7
8 100\le 100 =1=1
9 =109=10^9 =40=40
10 109\le 10^9
11
12
13 250\le 250 =100=100
14 500\le 500 =200=200
15 700\le 700 =300=300
16
17
18 2500\le 2500 =1000=1000
19 4000\le 4000 =1500=1500
20 8000\le 8000 =3000=3000

对于所有数据,满足 3p30003 \le p \le 30001n80001 \le n \le 80001k1091 \le k \le 10^9