#P4884. Red-Green Towers

Red-Green Towers

题目描述

你有 rr 块红色的积木和 gg 块绿色的积木,它们用于建造红绿塔。红绿塔按照下面的规则来建造:

  • 红绿塔有若干层;
  • 如果红绿塔有 nn 层,那么塔的第一层应该有 nn 块积木,第二层有 n1n-1 块,第三层有 n2n-2 块,以此类推,最后一层只有一块。换言之,每一层应该比前面一层少一块;
  • 红绿塔的每一层必须使用相同颜色的积木。

hh 表示用 rr 个红积木和 gg 个绿积木所能搭建的满足上述规则的塔的最大层数。现在你的任务是确定可以建造出多少不同的有 hh 层的红绿塔。

如果两个红绿塔相同的一层使用的是不同的颜色,它们就被认为不同的。

你需要写一个程序来求出有多少种高度为 hh 的不同的红绿塔。由于答案很大,你只需要输出答案模 109+710^9+7(也就是 10000000071000000007)后的值。

输入格式

输入仅有一行,用空格隔开的两个数 rrgg,表示可用的红色、绿色积木的数量,0r,g2×1050\le r,g\le 2\times 10^5, r+g1r+g\ge 1

输出格式

输出仅一行,高度为 hh 的不同红绿塔的个数模 109+710^9+7 的值。

输入数据 1

4 6

输出数据 1

2

输入数据 2

9 7

输出数据 2

6

输入数据 3

1 1

输出数据 3

2