你正在皮划艇穿越一个地下洞穴系统,突然意识到潮水正在上涨,你被困住了!幸运的是,你有一张洞穴系统的地图。在潮水开始退去之前你都无法离开,所以你还得在这里待上一段时间。在此期间,你想确定潮水开始退去后到达出口的最快路径。
洞穴系统是一个 $N \times M$ 的网格。你的地图由两个 $N \times M$ 的数字网格组成:一个指定了每个网格方块的天花板高度,另一个指定了每个网格方块的地板高度。洞穴系统的地板是多孔的,这意味着随着水位下降,水位以上不会残留任何水。
你被困在地图的西北角。当前水位为 $H$ 厘米,一旦水位开始下降,它将以每秒 10 厘米的恒定速度下降,直到降为零。出口位于地图的东南角。它现在被水淹没,但一旦潮水开始退去,它就会变得可以通行。
在任何时候,你都可以向北、南、东或西移动到相邻的方块,并遵循以下约束: 水位、你当前所在方块的地板高度以及相邻方块的地板高度,都必须比相邻方块的天花板高度至少低 50 厘米。注意:这意味着你永远无法进入地板和天花板之间距离小于 50 厘米的方块。 相邻方块的地板高度也必须比你当前所在方块的天花板高度至少低 50 厘米。 * 你永远不能移出地图边界。
注意,你可以带着皮划艇随意上下移动。(经过这段时间的皮划艇运动,你非常强壮!)例如,你可以从地板高度为 10 厘米的方块移动到地板高度为 9000 厘米的相邻方块(前提是满足上述约束)。
这些约束说明如下:
- 在第一张图中,你不能向右移动,因为水位比相邻方块的天花板高度低不足 50 厘米。
- 在第二张图中,你不能向右移动,因为你当前所在方块的地板高度比相邻方块的天花板高度低不足 50 厘米。
- 在第三张图中,你不能向右移动,因为相邻方块的地板高度比相邻方块的天花板高度低不足 50 厘米。你将永远无法从任何方向进入该方块。
- 在第四张图中,你不能向右移动,因为相邻方块的地板高度比你当前所在方块的天花板高度低不足 50 厘米。
当从一个方块移动到另一个方块时,如果你开始移动时当前方块的水位至少还有 20 厘米,则完成移动需要 1 秒(你可以使用皮划艇)。否则,需要 10 秒(你必须拖着皮划艇)。注意,时间仅取决于你离开的方块中的水位,而不取决于你进入的方块。
在潮水开始退去之前还需要一段时间,因此你可以在水开始下降之前花费任意多的时间移动。重要的是从水开始下降的那一刻起,直到你到达出口所需的时间。你能计算出这个时间吗?
输入格式
- 第一行包含一个整数 $T$:测试用例的数量。
- 接下来是 $T$ 个测试用例,每个测试用例的第一行包含整数 $H$、$N$ 和 $M$,分别表示初始水位高度(厘米)和地图尺寸。接下来的 $2N$ 行包含天花板和地板高度,格式如下:
- 接下来的 $N$ 行,每行包含 $M$ 个空格分隔的整数。第 $i$ 行的第 $j$ 个整数表示网格位置 $(j, i)$ 处的天花板高度 $C_{ij}$,其中 $i$ 坐标增加表示向南, $j$ 坐标增加表示向东。
- 接下来的 $N$ 行,以相同格式包含 $M$ 个空格分隔的整数,表示地板高度。
- 在起始位置,天花板与起始水位之间始终至少有 50 厘米的空气,且天花板与地板之间也至少有 50 厘米的距离。
- 出口位置的天花板与地板之间始终至少有 50 厘米的距离。
- 始终存在一条出路(毕竟你是进来的!)。
输出格式
对于每个测试用例,输出一行 "Case #x: t",其中 $x$ 是用例编号(从 1 开始),$t$ 是从潮水开始退去时起,你走出洞穴系统所需的时间(秒)。误差在 $10^{-6}$ 以内的绝对或相对误差将被接受。
说明
你有可能在潮水开始下降之前就穿过了整个洞穴系统。在这种情况下,你可以在出口处等待潮水开始下降,因此这种情况下的答案应为零(样例测试用例中的第四个就是这种情况)。
样例
输入 1
4 200 1 2 250 233 180 100 100 3 3 500 500 500 500 500 600 500 140 1000 10 10 10 10 10 490 10 10 10 100 3 3 500 100 500 100 100 500 500 500 500 10 10 10 10 10 10 10 10 10 100 2 2 1000 1000 1000 1000 100 900 900 100
输出 1
Case #1: 11.7 Case #2: 3.0 Case #3: 18.0 Case #4: 0.0
说明 1
在第一个样例测试用例中,东侧方块的水位与天花板之间最初只有 33 厘米,因此在潮水开始下降后,你必须等待 1.7 秒才能进入它。一旦可以通行,你就可以开始进入——但此时西侧方块的水位已经很低(仅比地板高 3 厘米),因此你必须拖着皮划艇走接下来的 10 秒才能到达出口。
第二个样例中的初始情况较好——相邻方块有足够的净空高度,因此你可以在潮水开始下降前移动到例如 $(1, 1)$ 的位置。到达那里后,你必须等待潮水开始下降,并等待水位降至 90 厘米(这需要一秒钟)。然后你可以划皮划艇向南再向东离开(总共三秒)。注意,你不能穿过 $(2, 1)$ 处的洞穴,即使那里的天花板足够高,因为该洞穴的地板与你可以尝试进入的任何洞穴($(1, 1)$ 和 $(2, 0)$)的天花板之间的空间太小——每种情况下只有 10 厘米。
第三个样例与第一个有些相似——你必须在起始位置等待,直到潮水降至 50 厘米。之后你可以划皮划艇前往出口——但在三次移动(花费三秒)后,水位降至 20 厘米,仅比地板高 10 厘米,这意味着第四次移动将是拖行而不是划行。
在第四个样例中,你非常幸运!你可以在潮水开始退去之前立即前往出口,并在那里等待。