Submission #1139845

#TimeUsernameProblemLanguageResultExecution timeMemory
1139845fcmalkcinLightning Rod (NOI18_lightningrod)C++20
66 / 100
1096 ms56432 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
stack<pair<ll,ll>> st;

signed main(){
    ll n;
    cin >> n;
    for (ll i = 0;i<n;i++){
        ll x,y;
        cin >> x >> y;
        bool checkAdd = true;
        while (true){
            if (st.size() == 0){
                st.push({x,y});
                checkAdd = false;
                break;
            }
            ll sx = st.top().first, sy = st.top().second;
            if (x-sx<=sy-y) {
                checkAdd = false;
                break;
            }
            else if (x-sx <=y-sy) { 
                st.pop();
                
            }
            else {
                break;
            }
        }
        if (checkAdd) st.push({x, y});
    }
    
    cout<<st.size()<<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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...