#codefestivalmorningmedd. [code_festival_morning_med_d]ぽよぽよ

[code_festival_morning_med_d]ぽよぽよ

问题描述

现在,有 nn 只小拇指酱排成一条直线,第 ii (1in1 \leq i \leq n) 只小拇指酱被连接到位置 pip_i 的杆子上,并且被长度为 lil_i 的链子所束缚。
也就是说,第 ii 只小拇指酱可以自由地在位置 pilip_i - l_ipi+lip_i + l_i(包括两端)的格子上移动。

当小拇指酱按照下标顺序依次站在不同的格子上时,有多少种可能的排列方式呢?
也就是,请计算满足以下条件的小拇指酱位置的组合数。
将第 ii (1in1 \leq i \leq n) 只小拇指酱的位置记为 xix_i

  • xix_i 是整数
  • pilixipi+lip_i - l_i \leq x_i \leq p_i + l_i
  • 对于任何 jj (1jn1 \leq j \leq n),如果 i<ji < j,则 xi<xjx_i < x_j

定义不同的位置组合为至少有一只小拇指酱的位置不同。

由于答案非常大,因此请输出答案除以 1,000,000,0071{,}000{,}000{,}007 的余数。


输入

输入以以下格式给出。

nn p1p_1 l1l_1 p2p_2 l2l_2 ...... pnp_n lnl_n

  • 11 行为一个整数 nn (1n1,0001 \leq n \leq 1,000),表示小拇指酱的总数。
  • 接下来 nn 行,每行包含两个整数,分别表示第 ii 只小拇指酱所连接杆子的位置 pip_i (0pi1,000,000,0000 \leq p_i \leq 1,000,000,000) 和链子的长度 lil_i (0li1,0000 \leq l_i \leq 1,000)。
  • 保证对于任意的 i<ji < j,都有 pi<pjp_i < p_j

输出

输出小拇指酱的可能排列总数除以 1,000,000,0071,000,000,007 的余数,以一行输出。

最后换行,不要包含多余的字符和空行。


输入示例1


1
0 3

输出示例1


7

小拇指酱的可能排列方式有 3-3, 2-2, 1-1, 00, 11, 22, 3377 种。


输入示例2


2
0 3
1 2

输出示例2


20

小拇指酱的可能排列总数是,设定(第 11 只小拇指酱的位置,第 22 只小拇指酱的位置)为一组,
(3,1)(-3, -1), (3,0)(-3, 0), (3,1)(-3, 1), (3,2)(-3, 2), (3,3)(-3, 3),
(2,1)(-2, -1), (2,0)(-2, 0), (2,1)(-2, 1), (2,2)(-2, 2), (2,3)(-2, 3),
(1,0)(-1, 0), (1,1)(-1, 1), (1,2)(-1, 2), (1,3)(-1, 3),
(0,1)(0, 1), (0,2)(0, 2), (0,3)(0, 3),
(1,2)(1, 2), (1,3)(1, 3), (2,3)(2, 3)
共有 2020 种。