atcoder#AGC021F. [AGC021F] Trinity
[AGC021F] Trinity
配点 : 点
問題文
縦 マス、横 マスのマス目があります。 行目、 列目にあるマスを とあらわすことにします。 特に、一番左上のマスは と、一番右下のマスは とあらわされます。 高橋君は 個以上のいくつかのマスを黒く、他のマスを白く塗りました。
長さ の数列 と、長さ の数列 をそれぞれ以下のように定義するとき、列の組 としてありうるものの個数を で割った余りを求めてください。
- は、マス が黒く塗られているような最小の (存在しない場合、)
- は、マス が黒く塗られているような最小の (存在しない場合、)
- は、マス が黒く塗られているような最大の (存在しない場合、)
注意
この問題では、提出できるソースコードのサイズは B 以下に制限される。 制限を超える長さの提出は無効とするので注意すること。
制約
- は整数である
部分点
- を満たすデータセットに正解すると、 点が与えられる。
入力
入力は以下の形式で標準入力から与えられる。
N M
出力
列の組 の個数を で割った余りを出力せよ。
2 3
64
なので、 の情報から、各列の黒く塗られたマスの配置が一意に定まります。各 について、 の組は の 通りなので、答えは 通りです。
4 3
2588
17 13
229876268
5000 100
57613837