spoj#DOMINOES. Dominoes
Dominoes
Johnny is playing with some dominoes one afternoon. His dominoes come in a variety of heights and colors.
Just like any other child, he likes to put them in a row and knock them over.
He wants to know something: how many pushes does it take to knock down all the dominoes?
Johnny is lazy, so he wants to minimize the number of pushes he takes.
A domino, once knocked over, will knock over any domino that it touches on the way down.
For the sake of simplicity, imagine the floor as a one-dimensional line, where 1 is the leftmost point. Dominoes will not slip along the floor once toppled. Also, dominoes do have some width: a domino of length 1 at position 1 can knock over a domino at position 2.
For the mathematically minded:
A domino at position x with height h, once knocked over to the right, will knock all dominoes at positions x+1, x+2, ..., x+h rightward as well.
Similarly, the same domino knocked over to the left will knock all dominoes at positions x-1, x-2, ..., x-h leftward.
Input
The input starts with a single integer N (N ≤ 100000), the number of dominoes, followed by N pairs of integers.
Each pair of integers represents the location and height of a domino, in that order (0 ≤ location ≤ 109, 0 ≤ height ≤ 109).
No two dominoes will have the same location.
Output
A single integer on a single line: the minimum number of pushes Johnny must make in order to ensure that all dominoes are knocked over.
Example
Input: 6 1 1 2 2 3 1 5 1 6 1 8 3 Output: 2 Explanation | | | | | | | | | 1 2 3 4 5 6 7 8
Pushing 1 causes 2 and 3 to fall, while pushing 8 causes 6 to fall and gently makes 5 tip over as well.