Submission #1281503

#TimeUsernameProblemLanguageResultExecution timeMemory
1281503nanaseyuzukiAdvertisement 2 (JOI23_ho_t2)C++20
100 / 100
166 ms24148 KiB
#include<bits/stdc++.h>

using  namespace std;
#define fi first
#define se second
#define pii pair<int, int>

const int mn = 5e5+5;
int n, m, k;
pii a[mn];
int val1[mn], val2[mn];
int q[mn];

void solve(){
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i].fi >> a[i].se;
    sort(a + 1, a + n + 1);
    for(int i = 1; i <= n; i++){
        val1[i] = a[i].fi - a[i].se;
        val2[i] = a[i].fi + a[i].se;
        q[i] = 1;
    }
    priority_queue <pii, vector <pii>, greater<pii>> pq1;
    priority_queue <pii> pq;
    for(int i = 1; i <= n; i++){
        while(!pq.empty() && pq.top().fi >= val1[i]){
            pq.pop();
        }
        pq.push({val1[i], i});
        // cout << pq.size() << '\n';
    }
    vector <int> xet;
    while(pq.size()){
        xet.push_back(pq.top().se);
        pq.pop();
    }
    sort(xet.begin(), xet.end(), greater <int>());
    for(auto i : xet){
        while(!pq1.empty() && pq1.top().fi <= val2[i]){
            pq1.pop();
        }
        pq1.push({val2[i], i});
    }
    cout << (int)pq1.size();
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int t = 1;
    // cin >> t;
    while(t--){
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...