AT_abc440_g [ABC440G] Haunted House
Description
ハロウィンの季節がやってきました。あなたは肝試しとして、お化け屋敷に挑戦しようとしています。
$ F $ 階だてのお化け屋敷があり、各階は $ H $ 行 $ W $ 列のグリッドで表されます。 $ k $ 階を表すグリッドの上から $ i $ 行目・左から $ j $ 列目のマスをマス $ (k,i,j) $ とします。
マス $ (k,i,j) $ の内容は文字 $ S_{k,i,j} $ によって、以下のように表されます。
- $ S_{k,i,j} $ が数字 (`0` - `9`) の場合、マス $ (k,i,j) $ は空きマスであり、数字が表す $ 1 $ 桁の整数と同じ枚数のコインがある。
- $ S_{k,i,j} $ が `#` の場合、マス $ (k,i,j) $ は壁マスである。
空きマス $ (k,i,j) $ からほかのマス $ (k', i', j') $ に直接移動できる条件は、マス $ (k', i', j') $ が空きマスであり、かつ以下のいずれかを満たすことです。
- $ k' = k $ および $ |i' - i| + |j' - j| = 1 $ を満たす。
- $ (k', i', j') = (k+1, i, j) $ を満たす。
- $ (k', i', j') = (k-1, i, j) $ を満たし、かつマス $ (k,i,j) $ に**ハシゴ**が置かれている。
グリッドの外部に移動することはできません。
$ Q $ 個の質問が与えられるので、それぞれの答えを求めてください。 $ i $ 個目の質問 ( $ 1 \leq i \leq Q $ ) は以下の通りです。
- 好きな空きマスを $ 1 $ つだけ選んでハシゴを置いてから、マス $ (G_i, A_i, B_i) $ を開始地点として移動を繰り返したとき、訪れたマスにあるコインの合計枚数の最大値を求めよ。
なお、各質問は独立です。つまり、ある質問で置いたハシゴは、ほかの質問に影響を与えません。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ F $ $ H $ $ W $ $ S_{1,1,1} S_{1,1,2} \cdots S_{1,1,W} $ $ S_{1,2,1} S_{1,2,2} \cdots S_{1,2,W} $ $ \vdots $ $ S_{1,H,1} S_{1,H,2} \cdots S_{1,H,W} $ $ S_{2,1,1} S_{2,1,2} \cdots S_{2,1,W} $ $ S_{2,2,1} S_{2,2,2} \cdots S_{2,2,W} $ $ \vdots $ $ S_{2,H,1} S_{2,H,2} \cdots S_{2,H,W} $ $ \vdots $ $ S_{F,1,1} S_{F,1,2} \cdots S_{F,1,W} $ $ S_{F,2,1} S_{F,2,2} \cdots S_{F,2,W} $ $ \vdots $ $ S_{F,H,1} S_{F,H,2} \cdots S_{F,H,W} $ $ Q $ $ G_1 $ $ A_1 $ $ B_1 $ $ G_2 $ $ A_2 $ $ B_2 $ $ \vdots $ $ G_Q $ $ A_Q $ $ B_Q $
Output Format
$ Q $ 行出力せよ。 $ i $ 行目 ( $ 1 \leq i \leq Q $ ) には $ i $ 個目の質問の答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目の質問において、マス $ (2,3,5) $ にハシゴを置いた状態で以下のように移動することで、訪れたマスにあるコインの合計枚数を $ 47 $ にすることができます。
1. お化け屋敷の $ 1 $ 階において、マス $ (1,2,3) $ から開始する。
2. お化け屋敷の $ 2 $ 階に上がり、マス $ (2,2,3) \to (2,2,4) \to (2,2,5) \to (2,3,5) $ の順に移動する。
3. お化け屋敷の $ 1 $ 階に降りて、マス $ (1,3,5) \to (1,4,5) \to (1,4,4) \to (1,3,4) \to (1,4,4) $ の順に移動する。
4. お化け屋敷の $ 2 $ 階に上がり、マス $ (2,4,4) \to (2,4,3) \to (2,4,2) \to (2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4) $ の順に移動する。
5. お化け屋敷の $ 3 $ 階に上がり、マス $ (3,4,4) \to (3,4,5) $ の順に移動する。
$ 2 $ 番目の質問において、マス $ (2,4,4) $ にハシゴを置いた状態で以下のように移動することで、訪れたマスにあるコインの合計枚数を $ 34 $ にすることができます。
1. お化け屋敷の $ 2 $ 階において、マス $ (2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4) $ の順に移動する。
2. お化け屋敷の $ 1 $ 階に降りて、マス $ (1,4,4) \to (1,4,5) \to (1,3,5) \to (1,3,4) \to (1,4,4) $ の順に移動する。
3. お化け屋敷の $ 2 $ 階に上がり、マス $ (2,4,4) $ にいる。
4. お化け屋敷の $ 3 $ 階に上がり、マス $ (3,4,4) \to (3,4,5) $ の順に移動する。
$ 3 $ 番目の質問において、どのようにハシゴを置いても開始地点のマス $ (3,2,2) $ から移動することはできません。
### Constraints
- $ F,H,W $ は整数
- $ 1 \leq F \leq 10 $
- $ 1 \leq H,W \leq 500 $
- $ S_{k,i,j} $ は数字 (`0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`) または `#` のいずれか ( $ 1 \leq k \leq F, 1 \leq i \leq H, 1 \leq j \leq W $ )
- $ Q $ は整数
- $ 1 \leq Q \leq 10^5 $
- $ G_i, A_i, B_i $ は整数 ( $ 1 \leq i \leq Q $ )
- $ 1 \leq G_i \leq F $ ( $ 1 \leq i \leq Q $ )
- $ 1 \leq A_i \leq H $ ( $ 1 \leq i \leq Q $ )
- $ 1 \leq B_i \leq W $ ( $ 1 \leq i \leq Q $ )
- $ S_{G_i, A_i, B_i} $ は `#` でない ( $ 1 \leq i \leq Q $ )