远古守卫者 (Elder Guardian)
Steve 偶然发现了一座海底神殿,并想要洗劫它。他穿上了自己最好的盔甲,带上他最喜欢的三叉戟,去寻找传闻中的海绵房。
神殿由许多愤怒的守卫者和远古守卫者守护着。这些怪物非常强大,Steve 发现每次他进入神殿,在不得不撤退治疗之前,他要么可以击杀最多两只守卫者,要么可以击杀恰好一只远古守卫者。然而,每次他撤退时,神殿里都会生成一只新的守卫者。幸运的是,远古守卫者永远不会重新生成。
Steve 需要消灭神殿中的所有怪物,然后才能安全地搜刮它。他希望以一种最优的方式消灭这些怪物,从而使进入神殿的总次数最少。请编写一个程序,帮助他计算出有多少种这样的最优顺序可供选择。
例如,如果神殿中最初有 1 只守卫者和 2 只远古守卫者,那么有 2 种可以使所需进入次数最少的最优顺序:他可以在前两次进入时每次击杀一只远古守卫者,并在接下来的两次进入中每次击杀两只守卫者;或者他可以在第一次进入时击杀一只远古守卫者,在第二次进入时击杀两只守卫者,在第三次进入时击杀第二只远古守卫者,并在第四次进入时击杀两只守卫者。
输入格式
第一行包含一个整数 $1 \le t \le 500$,表示接下来的测试用例数量。
每个测试用例占一行,包含两个整数 $0 \le g, e \le 20$,分别表示 Steve 第一次进入神殿时,神殿中守卫者和远古守卫者的数量。
输出格式
对于每个测试用例,输出一行,包含一个整数,表示 Steve 可以消灭怪物的所有最优顺序的数量。
样例
输入样例 1
3 1 2 1 5 2 3
输出样例 1
2 42 14