扫雷
题号:NC21364
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

小A最近迷上了扫雷。
小A玩的扫雷游戏规则是这样的:n 个地雷排成一排,必须从 1 到 n 依次扫过。扫一个雷需要花费 1s 的时间,如果成功排除当前雷,则可以排除下一个雷;否则的话地雷就会引爆,游戏失败,还需要从头开始重新扫雷。扫完第 n 个雷后才会胜利,游戏结束。
因为小A太弱了,他并不会推断每个位置的雷,只能凭运气去扫雷,所以对于第 i (1≤i≤n) 个雷,他有  的概率能排除成功,否则雷就会爆炸,要重新开始。

现在小A想知道作为非酋,他游戏胜利的期望用时是多少,你能帮帮可怜的他吗?

输入描述:

第一行一个整数 n ,表示雷的个数。接下来 n 行每行两个正整数 ai, bi,意义如上所述。

输出描述:

输出一行一个数表示小A游戏胜利的期望用时,答案对 1000000007 取模。
示例1

输入

复制
3
1 2
1 2
1 2

输出

复制
14

备注:

对于 20%的数据,n≤10
对于 40%的数据,n≤1000
对于 100%的数据,n≤1000000,1≤ai≤bi≤109