问题描述
现在,有 n 只小拇指酱排成一条直线,第 i (1≤i≤n) 只小拇指酱被连接到位置 pi 的杆子上,并且被长度为 li 的链子所束缚。
也就是说,第 i 只小拇指酱可以自由地在位置 pi−li 到 pi+li(包括两端)的格子上移动。
当小拇指酱按照下标顺序依次站在不同的格子上时,有多少种可能的排列方式呢?
也就是,请计算满足以下条件的小拇指酱位置的组合数。
将第 i (1≤i≤n) 只小拇指酱的位置记为 xi,
- xi 是整数
- pi−li≤xi≤pi+li
- 对于任何 j (1≤j≤n),如果 i<j,则 xi<xj
定义不同的位置组合为至少有一只小拇指酱的位置不同。
由于答案非常大,因此请输出答案除以 1,000,000,007 的余数。
输入
输入以以下格式给出。
n
p1 l1
p2 l2
...
pn ln
- 第 1 行为一个整数 n (1≤n≤1,000),表示小拇指酱的总数。
- 接下来 n 行,每行包含两个整数,分别表示第 i 只小拇指酱所连接杆子的位置 pi (0≤pi≤1,000,000,000) 和链子的长度 li (0≤li≤1,000)。
- 保证对于任意的 i<j,都有 pi<pj。
输出
输出小拇指酱的可能排列总数除以 1,000,000,007 的余数,以一行输出。
最后换行,不要包含多余的字符和空行。
输入示例1
1
0 3
输出示例1
7
小拇指酱的可能排列方式有 −3, −2, −1, 0, 1, 2, 3 这 7 种。
输入示例2
2
0 3
1 2
输出示例2
20
小拇指酱的可能排列总数是,设定(第 1 只小拇指酱的位置,第 2 只小拇指酱的位置)为一组,
(−3,−1), (−3,0), (−3,1), (−3,2), (−3,3),
(−2,−1), (−2,0), (−2,1), (−2,2), (−2,3),
(−1,0), (−1,1), (−1,2), (−1,3),
(0,1), (0,2), (0,3),
(1,2), (1,3), (2,3)
共有 20 种。