Submission #538833

#TimeUsernameProblemLanguageResultExecution timeMemory
538833four_specksLightning Rod (NOI18_lightningrod)C++17
100 / 100
1834 ms262144 KiB
#include <bits/stdc++.h>

using namespace std;

inline namespace
{
} // namespace

struct Point
{
    long x, y;

    bool covers(const Point &p) const { return abs(x - p.x) <= y - p.y; }
};

void solve()
{
    int n;
    cin >> n;

    stack<Point> st;
    for (int i = 0; i < n; i++)
    {
        Point pt;
        cin >> pt.x >> pt.y;

        while (!st.empty() && pt.covers(st.top()))
            st.pop();
        if (st.empty() || !st.top().covers(pt))
            st.push(pt);
    }

    cout << (int)st.size() << '\n';
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(NULL);

    solve();

    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...