atcoder#CODEFESTIVAL2017QUALBE. Popping Balls
Popping Balls
配点 : 点
問題文
個のボールが一列に並べられています。 左から 個のボールは赤で、右から 個のボールは青で塗られています。
あなたは、以下の操作を行います:
- 最初に、 を満たす整数 を選びます。
- 次に、以下のステップを 回繰り返します: 各ステップでは、あなたは左から 番目または 番目 (存在すれば) または 番目 (存在すれば、すべて 1-based) のボールを選び、すぬけ君にあげます。
すぬけ君に何通りの方法でボールをあげることができるでしょうか? Mod で求めてください。
ここで、ある整数 に対し、 番目にすぬけ君にあげるボールの色が異なるとき、二つの方法は異なるとみなします。 特に、 の選択は関係ありません。 また、同じ色の二つのボールは区別しません。
制約
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
3 3
20
個の赤いボールと 個の青いボールをあげる方法は 通りあります。 それらのすべての方法が可能であることが分かります。
以下は操作の例です (r
は赤を、 b
は青をあらわします):
- を選ぶ。
- 最初、列は
rrrbbb
となっています。 - 番目のボール (
r
) を取り除きすぬけ君にあげます。 列はrrbbb
となっています。 - 番目のボール (
b
) を取り除きすぬけ君にあげます。 列はrrbb
となっています。 - 番目のボール (
r
) を取り除きすぬけ君にあげます。 列はrbb
となっています。 - 番目のボール (
b
) を取り除きすぬけ君にあげます。 列はrb
となっています。 - 番目のボール (
r
) を取り除きすぬけ君にあげます。 列はb
となっています。 - 番目のボール (
b
) を取り除きすぬけ君にあげます。 列は空になります。
この方法では、すぬけ君は rbrbrb
の順でボールを受け取ります。
4 4
67
個の赤いボールと 個の青いボールをあげる方法は 通りあります。
そのうち、 bbrrbrbr
, brbrbrbr
, brrbbrbr
だけが不可能です。
7 9
7772
1987 1789
456315553