Submission #1199843

#TimeUsernameProblemLanguageResultExecution timeMemory
1199843BoomydayAdvertisement 2 (JOI23_ho_t2)C++20
100 / 100
1578 ms47368 KiB
//
// Created by adavy on 5/11/2025.
//
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

int main(){
    int N; cin >> N;
    map<int,int> nums;
    for(int i=0;i<N;++i){
        int x, v; cin >> x >> v;
        if (nums.find(x) == nums.end()){
            nums[x] = v;
        } else {
            nums[x] = max(nums[x], v);
        }
    }
    multiset<int, greater<int>> left, right;
    for(auto&[k, v]:nums){
        right.insert(v-k);
    }
    int ans = 0;
    for(auto&[k,v]:nums){
        right.erase(right.find(v-k));
        // output right
        if (!((!right.empty() && *right.begin()>=v-k) || (!left.empty() && *left.begin()>=v+k))){
            ans++;
        }
        left.insert(v+k);
    }
    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...