#include <bits/stdc++.h>
using namespace std;
int main(){
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);
    int n;
    cin>>n;
    vector<int> l(n);
    vector<int> dp(n,0);
    vector<int> maxUntil(n,0);
    for(int i = 0;i<n;i++){
        int r;
        cin>>l[i]>>r;
    }
    for(int i = 0;i<n;i++){
        if(i-l[i]-1>=0){
            dp[i] = max(dp[i],maxUntil[i-l[i]-1]+1);
        }else{
            dp[i] = 1;
        }
        if(i!=0){
            maxUntil[i] = max(maxUntil[i-1],dp[i]);
        }else{
            maxUntil[i] = dp[i];
        }
    }
    cout<<maxUntil[n-1]<<endl;
}
/*
4
1 0
1 0
1 0
4 0
*/
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |