제출 #1150994

#제출 시각아이디문제언어결과실행 시간메모리
1150994AlperenT_Advertisement 2 (JOI23_ho_t2)C++20
100 / 100
104 ms12252 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...