atcoder#CODEFESTIVAL2017QUALBE. Popping Balls
Popping Balls
题目描述
個のボールが一列に並べられています。 左から 個のボールは赤で、右から 個のボールは青で塗られています。
あなたは、以下の操作を行います:
- 最初に、 を満たす整数 を選びます。
- 次に、以下のステップを 回繰り返します: 各ステップでは、あなたは左から 番目または 番目 (存在すれば) または 番目 (存在すれば、すべて 1-based) のボールを選び、すぬけ君にあげます。
すぬけ君に何通りの方法でボールをあげることができるでしょうか? Mod で求めてください。
ここで、ある整数 に対し、 番目にすぬけ君にあげるボールの色が異なるとき、二つの方法は異なるとみなします。 特に、 の選択は関係ありません。 また、同じ色の二つのボールは区別しません。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを出力せよ。
题目大意
有 个球排成一行,其中左边 个是红色的,右边 个是蓝色的。
你可以选定一对整数 (),然后重复进行以下操作直到球被取完:将第一个球或第 个球或第 个球(当前球的数量必须够才能执行)拿出来。
求最后拿出来的球的颜色序列有多少种不同方案数。答案对 取模。
方案不同当且仅当存在某一次取出的球的颜色不同。
。
3 3
20
4 4
67
7 9
7772
1987 1789
456315553
提示
制約
Sample Explanation 1
個の赤いボールと 個の青いボールをあげる方法は 通りあります。 それらのすべての方法が可能であることが分かります。 以下は操作の例です (r
は赤を、 b
は青をあらわします): - を選ぶ。 - 最初、列は rrrbbb
となっています。 - 番目のボール (r
) を取り除きすぬけ君にあげます。 列は rrbbb
となっています。 - 番目のボール (b
) を取り除きすぬけ君にあげます。 列は rrbb
となっています。 - 番目のボール (r
) を取り除きすぬけ君にあげます。 列は rbb
となっています。 - 番目のボール (b
) を取り除きすぬけ君にあげます。 列は rb
となっています。 - 番目のボール (r
) を取り除きすぬけ君にあげます。 列は b
となっています。 - 番目のボール (b
) を取り除きすぬけ君にあげます。 列は空になります。 この方法では、すぬけ君は rbrbrb
の順でボールを受け取ります。
Sample Explanation 2
個の赤いボールと 個の青いボールをあげる方法は 通りあります。 そのうち、 bbrrbrbr
, brbrbrbr
, brrbbrbr
だけが不可能です。