#P1472. SPOJ DOMINOES

SPOJ DOMINOES

题目描述

Johnny 把一些高度各不相同的多米诺骨牌排在一条直线上,并想把它们全部推倒。

他很懒,因此希望使用尽可能少的主动推动次数。

一块多米诺骨牌倒下时,会把倒下过程中接触到的其他多米诺骨牌继续推倒。

为了简化问题,把地面看成一条一维数轴。骨牌倒下后不会沿地面滑动,并且可以认为骨牌具有一定宽度:例如,位于位置 11、高度为 11 的骨牌可以碰倒位于位置 22 的骨牌。

更严格地说:

  • 一块位于 xx、高度为 hh 的骨牌如果向右倒下,那么它会使位置位于
x+1,x+2,,x+hx+1,x+2,\ldots,x+h

上的所有骨牌也向右倒下;

  • 如果它向左倒下,那么会使位置位于
x1,x2,,xhx-1,x-2,\ldots,x-h

上的所有骨牌也向左倒下。

被连锁碰倒的骨牌会继续按同一方向产生连锁反应。

你每次主动推动时,可以选择任意一块尚未倒下的骨牌,并选择将它向左或向右推倒。

求使所有骨牌最终都倒下所需的最少主动推动次数。

输入格式

第一行包含一个整数 NN,表示多米诺骨牌的数量:

N100000.N\le 100000.

接下来 NN 行,每行包含两个整数 x,hx,h,分别表示一块骨牌的位置和高度:

0x109,0\le x\le 10^9, 1h109.1\le h\le 10^9.

保证任意两块骨牌的位置不同。

输出格式

输出一个整数,表示为了保证所有骨牌都倒下,Johnny 最少需要主动推动多少次。

样例输入

6
1 1
2 2
3 1
5 1
6 1
8 3

样例输出

2

样例说明

例如,可以先推动位置 11 的骨牌,使其引发向右的连锁反应并使前面若干骨牌倒下;再从右侧推动位置 88 的骨牌,即可使剩余骨牌全部倒下,因此答案为 22