atcoder#ABC232E. [ABC232E] Rook Path
[ABC232E] Rook Path
配点 : 点
問題文
縦 行、横 行の マスからなるグリッドがあります。上から 行目、左から 列目のマスを と表します。
はじめ、マス にルークが置かれており、高橋君は以下の操作を 回行います。
- 現在ルークが置かれているマスと行または列が同じマスにルークを移動させる。ただし、現在ルークが置かれているマスとは異なるマスに移動させる必要がある。
回の操作の後、ルークがマス に置かれているようにする方法は何通りありますか?答えは非常に大きくなることがあるので、 で割った余りを求めてください。
制約
入力
入力は以下の形式で標準入力から与えられる。
出力
回の操作の後、ルークがマス に置かれているようにする方法の総数を で割った余りを出力せよ。
2 2 2
1 2 2 1
2
以下の 通りです。
- 回目の操作でルークをマス からマス へ動かし、 回目の操作でルークをマス からマス に動かす。
- 回目の操作でルークをマス からマス へ動かし、 回目の操作でルークをマス からマス に動かす。
1000000000 1000000000 1000000
1000000000 1000000000 1000000000 1000000000
24922282
で割った余りを求めなければならないことに注意して下さい。
3 3 3
1 3 3 3
9