#gw2015j. [gw2015_j]ピラミッド - 2D編
[gw2015_j]ピラミッド - 2D編
问题描述
伊织酱的兴趣是金字塔。
伊织酱想出了一个以金字塔为题材的问题。但是,后来发现这个问题已经被提出过了,所以伊织酱就有点不高兴了。然后,伊织酱决定思考另一个问题。
考虑一个层数无限的 维金字塔。我们将从上到下的第 层左侧的第 块石头称为石头 。我们考虑取石头 和石头 。为了取石头 ,必须先取石头 和石头 (如果 或者 或者 ,那么石头不存在,不需要取)。在取石头 和石头 的方法中,有多少种取法使得取石头的数量最小?注意,取法根据取石头的顺序而区分,当取石头的顺序不同时,两种取法是不同的。此外,在同一时间内不能取 个以上的石头。
输入
输入从标准输入中按以下格式给出。
:
- 第 行包含一个整数 ,表示测试案例的数量。
- 接下来的 行描述每个测试案例的信息。其中第 行包含 个整数 $A_i (1 ≦ A_i ≦ 10^6), B_i (1 ≦ B_i ≦ A_i), C_i (1 ≦ C_i ≦ 10^6), D_i (1 ≦ D_i ≦ C_i)$,表示第 个测试案例中的 的值。注意,保证 和 成立。此外,保证需要取的石头数量不超过 。
输出
输出包含 行。其中第 行输出第 个测试案例的答案除以 的余数。输出末尾要有换行符。
示例输入1
6
2 1 2 2
1 1 1000000 1000000
3 2 5 3
5 2 4 3
2015 55 1700 1300
100 50 1000 500
示例输出1
2
1
42
252
926737422
143485143
第 个测试案例有以下 种取法:
- 按照顺序取石头 、石头 、石头 。
- 按照顺序取石头 、石头 、石头 。