On holiday, Kandy happens to come to a square. People there are playing different kinds of games. Each game has a start time and a lasting duration. Two or more games may carry on at the same time. Kandy likes the games so much that he wants to take apart in as many as possible games. Given the list of all the games, can you help him to calculate the maximum number of games that he can take.
Input
There are several test cases. The first line of each test case is a single integer N, which is the total number of the games (1 ≤ N ≤ 10000). It's followed by N lines, each line has two integers, S and D, and S is the start time of the ith game, and D is the game's duration (0 ≤ S ≤ 10000, 1 ≤ D ≤ 1000).The last case is followed by a single integer 0.
Output
For each case, output one line with a single integer M, which is the maximum number of games that Kandy can take.Sample Input
5 0 3 5 10 9 2 3 4 2 2 0
Sample Output
3
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int s,d;
}c[10001];
int cmp(node a,node b){
return a.d<b.d;
}
int main(){
int n,a,b,r,j;
while(cin>>n&&n){
r=1;
for(int i=0;i<n;i++){
cin>>a>>b;
c[i].s=a;
c[i].d=b+a;
}
sort(c,c+n,cmp);
//for(int i=0;i<n;i++)
// cout<<c[i].s<<" "<<c[i].d;
//cout<<endl;
j=0;
for(int i=1;i<n;i++){
if(c[i].s>=c[j].d){
r++;
j=i;
}
}
cout<<r<<endl;
}
return 0;
}