问题描述:
John 正在森林里伐木,有 n 棵树排成一行(可以看成一条马路、直线),这
n 棵树的坐标分别为 x1,x2,…,xn,每棵树的高度为 hi。当 John 砍下一棵树时,
他可以把这棵树放在树的左边或右边,它占据了马路的一段[xi-hi, xi]或[xi+hi,
xi],没有砍下的树占据了 xi点。当一棵树的左边[xi-hi, xi]段或右边[xi+hi, xi]
段已经被其他倒下的树或未被砍下的树占据时,这棵树就不能被砍下。现在编程
帮助 John 来计算,他最多可以砍下多少棵树。
注意:放置倒下的树时,允许使用负坐标,见样例解释。
输入格式:
第一行为正整数 t(≤5),表示数据组数;每组数据中,第一行为正整数 n(≤
10
5),接下来 n 行,每行两个正整数 xi和 ti(1≤xi,ti≤10
6)。注意:所有树的坐
标保证各不相同,数据中以 xi的升序给出。
输出格式:
对于每组数据,输出一个正整数,表示 John 能砍树的最大数目。