AT_abc378_d [ABC378D] Count Simple Paths
Description
[problemUrl]: https://atcoder.jp/contests/abc378/tasks/abc378_d
$ H $ 行 $ W $ 列のマス目があります。マス目の上から $ i $ 番目、左から $ j $ 番目のマスをマス $ (i,j) $ と表記します。
マス $ (i,j) $ は $ S_{i,j} $ が `.` のとき空きマスであり、`#` のとき障害物があります。
ある空きマスを出発し、上下左右に隣接するマスへの移動を $ K $ 回行う方法であって、障害物のあるマスを通らず、同じマスを $ 2 $ 回以上通らないようなものの個数を数えてください。
具体的には、長さ $ K+1 $ の列 $ ((i_0,j_0),(i_1,j_1),\dots,(i_K,j_K)) $ であって、以下を満たすものの個数を数えてください。
- 各 $ 0\ \leq\ k\ \leq\ K $ について、 $ 1\ \leq\ i_k\ \leq\ H,\ 1\ \leq\ j_k\ \leq\ W $ かつ $ S_{i_k,j_k} $ は `.` である
- 各 $ 0\ \leq\ k\ \leq\ K-1 $ について、 $ |i_{k+1}-i_k|\ +\ |j_{k+1}-j_k|\ =\ 1 $
- 各 $ 0\ \leq\ k\
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H $ $ W $ $ K $ $ S_{1,1}S_{1,2}\dots\ S_{1,W} $ $ S_{2,1}S_{2,2}\dots\ S_{2,W} $ $ \vdots $ $ S_{H,1}S_{H,2}\dots\ S_{H,W} $
Output Format
答えを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ H,W\ \leq\ 10 $
- $ 1\ \leq\ K\ \leq\ 11 $
- $ H,W,K $ は整数
- $ S_{i,j} $ は `.` または `#`
- 空きマスが少なくとも $ 1 $ つ存在する
### Sample Explanation 1
可能な経路は、以下の $ 2 $ 通りです。 - $ (1,1)\ \to\ (2,1)\ \to\ (2,2) $ - $ (2,2)\ \to\ (2,1)\ \to\ (1,1) $