伐木计划

题目描述

Y 同学来到了一片茂密的森林,这里生长着 NN 棵高大的树木。这些树木整齐地分布在一条笔直的公路上。

我们可以将公路视为一条数轴。第 ii 棵树(1iN1 \le i \le N)位于坐标 xix_i 处,其高度为 hih_i。为了方便处理,输入保证树木是按照坐标从小到大递增的顺序给出的,即 x1<x2<<xNx_1 < x_2 < \dots < x_N

Y 同学计划砍伐这些树木。对于任意一棵树 ii,他可以选择以下三种操作之一:

  1. 向左砍倒:树木倒下后将覆盖区间 [xihi,xi][x_i - h_i, x_i]。此操作合法的条件是:该区间内(不含 xix_i)不能包含其他树的根部坐标 xjx_j (jij \ne i),也不能与其他已经被砍倒的树木所覆盖的区间重叠。
  2. 向右砍倒:树木倒下后将覆盖区间 [xi,xi+hi][x_i, x_i + h_i]。此操作合法的条件是:该区间内(不含 xix_i)不能包含其他树的根部坐标 xjx_j (jij \ne i),也不能与其他已经被砍倒的树木所覆盖的区间重叠。
  3. 不砍伐:树木保持直立,仅占据坐标点 xix_i

Y 同学希望尽可能多地砍倒树木。请你帮助他计算,在保证所有倒下的树木互不重叠且不覆盖其他未砍伐树木根部的前提下,最多可以砍倒多少棵树。

输入格式

第一行包含一个整数 NN,表示树木的数量。

接下来 NN 行,每行包含两个整数 xix_ihih_i,分别表示第 ii 棵树的坐标和高度。

保证输入的 xix_i 是严格递增的。

输出格式

输出一行一个整数,表示最多可以砍倒的树木数量。

样例

样例输入 #1

5
1 2
2 1
5 10
10 9
19 1

样例输出 #1

3

样例输入 #2

5
1 2
2 1
5 10
10 9
20 1

样例输出 #2

4

数据范围与约定

对于 100%100\% 的数据,保证 1N1051 \le N \le 10^51xi,hi1091 \le x_i, h_i \le 10^9

子任务编号 分值 NN \le 特殊性质
1 20 1010
2 30 20002000
3 50 10510^5