Submission #744007

#TimeUsernameProblemLanguageResultExecution timeMemory
744007vjudge1Lightning Rod (NOI18_lightningrod)C++17
100 / 100
1729 ms155636 KiB
    #include<bits/stdc++.h>
    using namespace std;

    struct point
    {
        int x,y;
    };

    int n;
    vector<point> vec;
    stack<point> st;
    int cnt = 0;

    int main()
    {
        ios_base::sync_with_stdio(0); cin.tie(0);
        cin >> n;
        for(int i=0;i<n;++i)
        {
            int a,b;
            cin >> a >> b;
            vec.push_back({a,b});
        }
        for(int i=0;i<n;++i)
        {
            while(!st.empty() && vec[i].y-st.top().y >= abs(vec[i].x-st.top().x)) st.pop();
            if(st.empty() || !(st.top().y-vec[i].y >= abs(vec[i].x-st.top().x)))
            {
    //            cout << "add " << vec[i].x << " " << vec[i].y << '\n';
                st.push({vec[i].x,vec[i].y});
            }
        }
        cout << st.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...