等高线图表示给定区域的地形。等高线图上的线条代表恒定的海拔高度。例如,等高线图可能包含一条代表海拔高于平均海平面 100 米的点的线,另一条代表海拔 200 米的线,依此类推。
等高线测绘协会 (ACM) 需要一个程序,根据卫星收集的包含海拔测量值的数据文件生成等高线图。他们特别关注每张地图上所有等高线的总长度。海拔数据以整数序列的形式给出,这些整数代表沿东西向扫描线定期测量的海拔高度。扫描线的间距使得数据集中内部的每个海拔测量值都有六个最近的邻居,并且(忽略海拔时)与它们等距,如图 5 和图 6 所示。
图 5
图 6
ACM 的策略是通过连接每个海拔测量值与其最近邻居的直线段来构建一组三角形,从而近似实际地形。然后,将这些三角形中的每一个视为一个平面,该平面由包括海拔在内的顶点坐标确定。如果将这些三角形投影到零海拔平面上,它们将形成一组等边三角形。
在上述图中,黑色数字代表海拔数据,红色虚线和数字代表等高线。图 5 包含一条海拔为 5 的等高线。图 6 包含海拔为 6 和 9 的多条等高线。等高线可能穿过三角形的内部,也可能沿着三角形的边延伸。
由于数据点的交错方式,偶数编号的扫描线比奇数编号的扫描线多一个数据点。在每张图中,第一条扫描线显示在顶部。
输入格式
输入包含多个测试用例,每个测试用例包含一组海拔数据。每个测试用例以一行包含四个整数的行开始,如下所示:
- $s$ ($2 \le s \le 100$) 是测试用例中扫描线的数量。
- $p$ ($1 \le p \le 100$) 是奇数编号扫描线上的海拔测量值数量。偶数编号的扫描线包含 $p + 1$ 个海拔测量值。
- $d$ ($1 \le d \le 10$) 是忽略海拔时每个海拔测量值与其最近邻居之间的距离(等于图中等边三角形的边长)。
- $h$ ($1 \le h \le 1000$) 是所需地图中等高线之间的海拔增量。最终的等高线图在海拔为 $h$ 的整数倍处包含一条等高线。注意,一张地图可能包含给定海拔的多条等高线。在平坦区域,仅在边界处显示等高线。(例如,参见图 6 中海拔为 9 的等高线。)
每个测试用例的第一行之后是包含海拔数据的附加行,这些数据是不超过 $10^6$ 的非负整数序列。前 $p$ 个整数代表第一条扫描线上的海拔测量值,从左到右。接下来的 $p + 1$ 个整数代表第二条扫描线上的海拔测量值,从左到右。数据按顺序继续,为每条奇数编号的扫描线提供 $p$ 个整数,为每条偶数编号的扫描线提供 $p + 1$ 个整数,直到提供完所有海拔数据。每个测试用例以一个空行结束。
输入以包含单个零的行终止。
输出格式
对于每个测试用例,显示其用例编号,后跟等高线图上所有等高线的总长度,四舍五入到最接近的整数。请遵循样例输出的格式。
样例
输入 1
3 2 5 5 1 1 1 9 1 1 1 4 4 5 3 5 7 7 5 5 9 9 9 5 9 9 9 9 7 9 9 9 7 0
输出 1
Case 1: 15 Case 2: 54