Submission #1312219

#TimeUsernameProblemLanguageResultExecution timeMemory
1312219aryanLightning Rod (NOI18_lightningrod)C++17
66 / 100
1012 ms116032 KiB
#include<bits/stdc++.h>
using namespace std;

using i64 = long long;


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

    int n;
    cin >> n;
    vector<int> su(n),di(n);
    stack<int> st;
    for(int i = 0;i < n;i++){
        int x,y;
        cin >> x >> y;
        su[i] = x + y;
        di[i] = x - y;
        bool f = false;
        while((int) st.size() && di[i] <= di[st.top()]){
            st.pop();
            f = true;
        }
        if((int)st.size() == 0){
            st.push(i);
        }else if(f){
            st.push(i);
        }else{
            if(su[st.top()] < su[i]){
                st.push(i);
            }
        }
    }
    cout << (int) st.size() << '\n';

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