Type: Default 1000ms 256MiB

遥控炸弹

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

问题描述

A国和B国之间发生了一场大战。

A国的武器研究员辰辰发现,士兵在投掷炸弹的时候,总是会误伤友方人员,所以他们发明了一种遥控炸弹,这种炸弹只会在前方的一定范围爆炸,即假设该炸弹位于 xx 位置,其威力为 dd,那么其爆炸范围为 [x,x+d)[x,x+d)​。

同时,为了加大炸弹的威力,辰辰设计了引爆程序,炸弹之间彼此会产生连锁反应,即如果第 ii 个炸弹被引爆,且第 jj 个炸弹在第 ii 个炸弹的爆炸范围内,那么炸弹 jj​ 也会同时被引爆。

为了形式化问题本身,我们假定所有炸弹都被安装在了数轴的整点上,所以如果一个炸弹位于 xx 位置,其威力为 dd,那么其爆炸后会引爆 x,x+1,x+2,,x+d1x,x+1,x+2,…,x+d-1 这些位置上的炸弹。

现在数轴上有 nn 个炸弹,第 ii 个炸弹位于 xix_i,其威力为 did_i,辰辰可以手动操控其中若干个炸弹并将其同时引爆,辰辰想知道通过连锁反应,最终被引爆的炸弹集合有多少种可能,答案对 998244353998244353 取模。

输入格式

输入第一行,包含一个正整数 nn

之后 nn 行,每行包含 22 个整数,表示 xi,dix_i,d_i

输出格式

输出共一行,包含一个整数,表示答案,答案对 998244353998244353 取模。

样例输入1

2
1 5
3 3

样例输出1

3

样例解释1

若手动引爆炸弹 {1}\{1\},则最终被引爆的炸弹集合为 {1,2}\{1,2\}​。

若手动引爆炸弹 {1,2}\{1,2\},则最终被引爆的炸弹集合为 {1,2}\{1,2\}

若手动引爆炸弹 {2}\{2\},则最终被引爆的炸弹集合为 {2}\{2\}​。

若引爆炸弹 {}\{\},则最终被引爆的炸弹集合为 {}\{\}​。

所以共有 33 种可能,分别为 {1,2},{2},{}\{1,2\},\{2\},\{\}

样例输入2

3
6 5
-1 10
3 3

样例输出2

5

样例解释2

共有 55 种可能,分别为 {1,2,3},{1},{},{1,3},{3}\{1,2,3\},\{1\},\{\},\{1,3\},\{3\}

样例输入3

4
7 10
-10 3
4 3
-4 3

样例输出3

16

样例解释3

这些炸弹两两之间不会相互波及,所以手动引爆的结果即为最终炸弹引爆的结果,答案为 24=162^4=16​。

样例输入4

20
-8 1
26 4
0 5
9 1
19 4
22 20
28 27
11 8
-3 20
-25 17
10 4
-18 27
24 28
-11 19
2 27
-2 18
-1 12
-24 29
31 29
29 7

样例输出4

110

评测数据规模

对于 40%40\% 的数据,1n201 \leq n \leq 20​。

对于 60%60\% 的数据,1n10001 \leq n \leq 1000

对于另外 20%20\% 的数据,保证任意一个炸弹引爆后都不会发生连锁反应。

对于所有测评数据,1n2×105,109xi109,1di1091 \leq n \leq 2 \times 10^5,-10^9 \leq x_i \leq 10^9,1 \leq d_i \leq 10^9,保证炸弹的坐标两两不同。