Submission #1171595

#TimeUsernameProblemLanguageResultExecution timeMemory
1171595hamzabcLightning Rod (NOI18_lightningrod)C++20
66 / 100
1101 ms161400 KiB
#include <bits/stdc++.h>

using namespace std;
 
 
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define sp << " " <<
#define endl << '\n'


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int N;
    cin >> N;
    vector<pair<long long, long long>> building(N);
    for (int i = 0; i < N; i++){
        cin >> building[i].second >> building[i].first;
    }
    sort(all(building), greater<>{});
    set<pair<long long, long long>> plane;
    for (int i = 0; i < N; i++){
        set<pair<long long, long long>>::iterator nx = plane.lower_bound({ building[i].second, building[i].first }), pr;
        if (nx != plane.begin())
            pr = prev(nx);
        if (nx != plane.end() && abs(nx->first - building[i].second) <= nx->second - building[i].first){
            continue;
        }
        if (nx != plane.begin() && abs(pr->first - building[i].second) <= pr->second - building[i].first){
            continue;
        }
        plane.insert({ building[i].second, building[i].first });
    }
    cout << plane.size();
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...