loj#P2567. 「APIO2016」划艇

「APIO2016」划艇

問題文

ソウル市には漢江と呼ばれる川が東西方向に流れている.漢江の北側の岸には,NN 校のボート学校があり,西から東の順に 11 から NN までの番号が付けられている.同じ学校のボートは全く同じ色であり,見分けることができない. また,異なる学校のボートは異なる色であり,常に見分けることができる.番号 ii の学校は, 祭にボートを出さないかもしれない.もし,学校 ii が祭にボートを出す場合,出す数は aia_i 艘以上 bib_i 艘以下のいかなる数にもなり得る (aibi)(a_i≤b_i)

さらに, 次の条件を満たさなければならない.番号 ii の学校が祭にボートを出す場合,出すボートの数は,番号が ii より小さく祭にボートを出すどの学校が出すボートの数よりも 大きく なければならない.

各学校に対する ai,a_i, bib_i の値が与えられたとき,少なくとも 11 校の学校がボートを出す場合の,学校が祭にボートを出す方法の個数を求めよ.

入力

入力の 1 行目は,学校の数を表す 1 個の整数 NN を含む.続くNN 行のうちの ii 行目は,2 個の整数 ai,a_i, bib_i (1aibi109)(1≤a_i≤b_i≤10^9) を含む.

出力

出力は 1 行からなり,学校が祭にボートを出す方法の個数を 109+710^9+7 で割った余りを含む.

2
1 2
2 3
7

制約

小課題 1(9 分):1N5001 \le N \le 500 を満たし,かつ,全ての 1iN1 \le i \le N に対して ai=bia_i=b_i を満たす.

小課題 2(22 分):1N5001 \le N \le 500 を満たし,かつ,i=1N(biai)106\sum_{i=1}^{N}(b_i-a_i) \le 10^6 を満たす.

小課題 3(27 分):1N1001 \le N \le 100 を満たす.

小課題 4(42 分):1N5001 \le N \le 500 を満たす.