SP9755 SCPC11A - Grey Area

题目描述

Dr. Grey 是一位数据分析师,他每天都会处理来自世界各地的数据,并将其可视化。在众多可视化工具中,他最钟爱的还是自己开发的一个简单的直方图生成器。 下图展示了一个由他的生成器自动生成的直方图示例。直方图是一种使用条形来表示值出现频率的图形。在图中,0-9 区间内的值出现了 5 次,10-19 区间内的值出现了 3 次,20-29 和 30-39 区间各出现 1 次。 ![histogram](https://cdn.luogu.com.cn/upload/vjudge_pic/SP9755/bd3e538c96aa452cdfb09aff0395c04c863522fa.png) Dr. Grey 的直方图生成器主要特点简单明了。首先,无论直方图的其他部分如何变化,最高的条形高度始终固定。其次,所有条形的宽度都是一致的,即每个区间都是等宽的(如上例中宽度为 10)。最后,每个条形都涂成不同程度的灰色,其中最左侧是黑色,最右侧是白色,颜色从左到右逐渐变浅。例如,在图示中,四个条形的颜色深度分别为 1、2/3、1/3 和 0。 现在,你需要估算在纸上打印此类直方图时的墨水消耗量。绘制一个条形所需的墨水量与条形的面积和深度成正比。

输入格式

输入由多个数据集组成,每个数据集描述一个直方图,格式如下: ``` n w v1 v2 ... vn ``` 这里,$n$ 表示值出现的总次数,接下来 $n$ 行每行包含一个整数值。注意,某个值可能会出现多次。 $w$ 表示区间宽度,如果 $0 \leq v < w$,则 $v$ 属于第一个(最左边)区间。 保证满足以下条件: - $1 \leq n \leq 10^5$ - $1 \leq w \leq 10^5$ - $0 \leq v_i < 10^6$ 此外,你可以假设最大值不小于 $w$,这意味着直方图至少有两个区间。 输入以两个零结束。

输出格式

对于每个输入的数据集,输出一行表示打印该直方图的墨水消耗量。 假设绘制一个最高条形需要一单位墨水。由于绘制线条和字符等原因,每个直方图还会额外消耗 0.01 单位的墨水(见上图)。比如,打印上图的直方图所需的墨水量为: ![example](https://cdn.luogu.com.cn/upload/vjudge_pic/SP9755/4b12b88b791b64ea1133a8abf3012ec884de8030.png) 输出结果需精确到小数点后六位。 **本翻译由 AI 自动生成**