#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#define pb push_back
#define F first
#define pii pair<int,int>
#define all(a) a.begin(),a.end()
#define S second
#define sz(a) (int)a.size()
#define rep(i , a , b) for(int i = (a) ; i <= (b) ; i++)
#define per(i , a , b) for(int i = (a) ; i >= (b) ; i--)
#define ld long double
#define int long long
using namespace std ;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int maxn = 1e6+20 , maxm = 2e4 + 220, sq = 500 , inf = 1e18+10 , mod =998244353 ;
int mark[maxn] ;
signed main(){
ios_base::sync_with_stdio(false) ; cin.tie(0) ;
vector <pii> vec;
int n;cin >> n ;
rep(i ,1 , n){
int a , e ;
cin >> a >> e;
vec.pb({a,e}) ;
}
sort(all(vec)) ;
int mn = inf ;
rep(i , 0 ,sz(vec)-1){
if(i!=sz(vec)-1 && vec[i+1].F == vec[i].F)continue ;
if(mn <= -vec[i].S-vec[i].F){
mark[i] = 1;
}
mn = min(-vec[i].S-vec[i].F , mn) ;
}
mn = inf ;
per(i , sz(vec)-1 , 0){
if(i!=sz(vec)-1 && vec[i+1].F == vec[i].F)continue ;
if(mn <= vec[i].F-vec[i].S){
mark[i] = 1;
}
mn = min(mn , vec[i].F-vec[i].S);
}
int ans =0 ;
rep(i ,0 ,sz(vec)-1){
if(i!=sz(vec)-1 && vec[i+1].F == vec[i].F)continue ;
ans += (mark[i] ==0 );
}
cout << ans << "\n" ;
}
/*
*/
# | 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... |