SP9755 SCPC11A - Grey Area
题目描述
Dr. Grey 是一位数据分析师,他每天都会处理来自世界各地的数据,并将其可视化。在众多可视化工具中,他最钟爱的还是自己开发的一个简单的直方图生成器。
下图展示了一个由他的生成器自动生成的直方图示例。直方图是一种使用条形来表示值出现频率的图形。在图中,0-9 区间内的值出现了 5 次,10-19 区间内的值出现了 3 次,20-29 和 30-39 区间各出现 1 次。

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 单位的墨水(见上图)。比如,打印上图的直方图所需的墨水量为:

输出结果需精确到小数点后六位。
**本翻译由 AI 自动生成**