F - ミックスジュース Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

 配点: 100

問題文

ぬけす君はダンスプログラミングの祭典「KACoder」に出場するために、予選までの Q 日間、体にいいとされる妖精のミックスジュースを飲むことにしました。
妖精 1 羽の「美味しさ」は正の整数で表され、ミックスジュースの「美味しさ」は原料となった妖精の美味しさの合計です。
あなたは i 日目の朝に A_i 以上 B_i 以下の整数の美味しさの妖精をそれぞれ 1 羽ずつ仕入れ、1 羽以上を選んでミキサーにかけます。なお鮮度の観点から、使わなかった妖精はその日の夜に廃棄し、以後使うことはありません。
このとき、i 日目に作るミックスジュースの美味しさとしてあり得る値は何通りあるでしょうか。答えは非常に大きくなる可能性があるため、10^9+7 で割ったあまりを答えて下さい。

入力

入力は標準入力より以下のように与えられます。

Q
A_1 B_1
A_2 B_2
...
A_Q B_Q
  • 1 行目には、予選までの日数 Q が与えられます。
  • 2 行目から Q 行に渡って、i+1 行目には i 日目の朝に仕入れる妖精の情報 A_i, B_i が与えられます。

出力

全部で Q 行出力してください。
i 行目には、i 番目の質問に対する解答を出力してください。


制約

  • 1 \leq Q \leq 100000
  • 1 \leq A_i \leq B_i \leq 10^{9}
  • 入力は全て整数

小課題

小課題 1 [7 点]

  • Q = 1 を満たす。
  • B_1 - A_1 \leq 20 を満たす。

小課題 2 [60 点]

  • B_i - A_i の合計は 10^6 を超えない。

小課題 3 [33 点]

  • 追加の制約はない。

入力例 1

4
1 3
3 7
4 7
3141592 3141592

出力例 1

6
21
14
1

例えば、3 日目の妖精の美味しさは 4, 5, 6, 7 です。そのうち 1 個以上選ぶ方法は 15 通りあり、ミックスジュースの美味しさはそれぞれ

  • 4, 5, 6, 7, 4+5, 4+6, 5+6, 4+7, 5+7, 6+7, 4+5+6, 4+5+7, 4+6+7, 5+6+7, 4+5+6+7

ですが、そのうち 5+64+7 だけ 11 と同じ値になっているので、美味しさとしてありうる値は 14 通りあります。