제출 #1188074

#제출 시각아이디문제언어결과실행 시간메모리
1188074user736482Advertisement 2 (JOI23_ho_t2)C++20
100 / 100
294 ms39328 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define ff first
#define ss second
#define MOD 1000000009
#define INF 1000000019
#define INFL 1000000000000000099LL
#define POT (1<<20)
ll a,b,c,d,t,n,m,l,q,k,ak,ans;
vector<pair<ll,ll>>v;
set<pair<ll,ll>>s;
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);
    cin>>n;
    for(ll i=0;i<n;i++){
        cin>>a>>b;
        v.pb({b,a});
    }
    sort(v.begin(),v.end());
    reverse(v.begin(),v.end());
    s.insert({-INFL,-INFL});
    s.insert({INFL,-INFL});
    for(ll i=0;i<n;i++){
        pair<ll,ll>p1=*s.lower_bound({v[i].ss,-INFL}),p2=*--s.lower_bound({v[i].ss,INFL});
        if(p1.ss-v[i].ff>=abs(p1.ff-v[i].ss) || p2.ss-v[i].ff>=abs(p2.ff-v[i].ss)){
            continue;
        }
        if(p2.ss==v[i].ff)s.erase(s.lower_bound({v[i].ss,-INFL}));
        ans++;
        s.insert({v[i].ss,v[i].ff});
    }
    cout<<ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...