atcoder#CODEFESTIVAL2017QUALBE. Popping Balls

Popping Balls

题目描述

A + B A\ +\ B 個のボールが一列に並べられています。 左から A A 個のボールは赤で、右から B B 個のボールは青で塗られています。

あなたは、以下の操作を行います:

  • 最初に、 1  s, t  A + B 1\ \leq\ s,\ t\ \leq\ A\ +\ B を満たす整数 s, t s,\ t を選びます。
  • 次に、以下のステップを A + B A\ +\ B 回繰り返します: 各ステップでは、あなたは左から 1 1 番目または s s 番目 (存在すれば) または t t 番目 (存在すれば、すべて 1-based) のボールを選び、すぬけ君にあげます。

すぬけ君に何通りの方法でボールをあげることができるでしょうか? Mod 109 + 7 10^9\ +\ 7 で求めてください。

ここで、ある整数 k k に対し、 k k 番目にすぬけ君にあげるボールの色が異なるとき、二つの方法は異なるとみなします。 特に、 s, t s,\ t の選択は関係ありません。 また、同じ色の二つのボールは区別しません。

输入格式

入力は以下の形式で標準入力から与えられる。

A A B B

输出格式

答えを出力せよ。

题目大意

A+BA+B 个球排成一行,其中左边 AA 个是红色的,右边 BB 个是蓝色的。

你可以选定一对整数 (s,t)(s,t)s<ts<t),然后重复进行以下操作直到球被取完:将第一个球或第 ss 个球或第 tt 个球(当前球的数量必须够才能执行)拿出来。

求最后拿出来的球的颜色序列有多少种不同方案数。答案对 109+710^9+7 取模。

方案不同当且仅当存在某一次取出的球的颜色不同。

A,B2000A, B \leq 2000

3 3
20
4 4
67
7 9
7772
1987 1789
456315553

提示

制約

  • 1  A, B  2000 1\ \leq\ A,\ B\ \leq\ 2000

Sample Explanation 1

3 3 個の赤いボールと 3 3 個の青いボールをあげる方法は 20 20 通りあります。 それらのすべての方法が可能であることが分かります。 以下は操作の例です (r は赤を、 b は青をあらわします): - s = 3, t = 4 s\ =\ 3,\ t\ =\ 4 を選ぶ。 - 最初、列は rrrbbb となっています。 - 3 3 番目のボール (r) を取り除きすぬけ君にあげます。 列は rrbbb となっています。 - 4 4 番目のボール (b) を取り除きすぬけ君にあげます。 列は rrbb となっています。 - 1 1 番目のボール (r) を取り除きすぬけ君にあげます。 列は rbb となっています。 - 3 3 番目のボール (b) を取り除きすぬけ君にあげます。 列は rb となっています。 - 1 1 番目のボール (r) を取り除きすぬけ君にあげます。 列は b となっています。 - 1 1 番目のボール (b) を取り除きすぬけ君にあげます。 列は空になります。 この方法では、すぬけ君は rbrbrb の順でボールを受け取ります。

Sample Explanation 2

4 4 個の赤いボールと 4 4 個の青いボールをあげる方法は 70 70 通りあります。 そのうち、 bbrrbrbr, brbrbrbr, brrbbrbr だけが不可能です。