#include <bits/stdc++.h>
using ll = long long;
using namespace std;
inline int readInt() {
    int x = 0;
    char ch = getchar();
    while (ch < '0' || ch > '9') ch = getchar_unlocked();
    while (ch >= '0' && ch <= '9'){
		x = (x << 3) + (x << 1) + ch - '0';
		ch = getchar_unlocked();
	}
    return x;
}
int x[10000000], y[10000000];
int main(){
	int n = readInt();
	for(int i = 0; i < n; i++) {
		x[i] = readInt();
		y[i] = readInt();
	}
  if(n>=200000 and n>=2){
     std::vector<ll>l(n);
     std::vector<ll>r(n);
       l[0] = -1e9;
      r[n-1] = -1e9;
      for(int i = 1 ; i < n; i++){
      l[i] = std::max( l[i-1] , (ll)(x[i-1] + y[i-1]));
     }
      for(int i = n-2 ; i >=0; i--){
      r[i] = std::max(r[i+1] , (ll)(y[i+1] - x[i+1]));
     }
     
     ll c = 0;
     for(int i = 0 ; i < n ; i++){
       
          if(r[i] >= y[i] - x[i]) continue;
          if(l[i] >= y[i] + x[i] ) continue;
          c++;
       }
     
     std::cout << c;
  }
  
  
  else{
  std::cout << n;
  }
  
	return 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... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |