Submission #743713

#TimeUsernameProblemLanguageResultExecution timeMemory
743713vjudge1Lightning Rod (NOI18_lightningrod)C++17
66 / 100
2024 ms77576 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

bool check(ll x1, ll x2, ll y1, ll y2)
{
    return abs(x1 - x2) <= y1 - y2;
}

int main()
{
    int n;
    ll a, b;
    stack<pair<ll, ll>> st;
    cin >> n;
    for (int i = 0; i < n; ++i)
    {
        cin >> a >> b;
        if (!st.empty() && check(st.top().first, a, st.top().second, b)) // old cover new
        {
            continue;
        }
        while (!st.empty() && check(a, st.top().first, b, st.top().second)) // new cover old
        {
            st.pop();
        }
        st.push({a,b});
    }
    cout << st.size();
}
#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...