Submission #1309525

#TimeUsernameProblemLanguageResultExecution timeMemory
1309525zxzuamLightning Rod (NOI18_lightningrod)C++20
80 / 100
1099 ms78324 KiB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//#define int long long
using namespace std;
//using namespace __gnu_pbds;
constexpr int maxn = 1e7 + 9;
int a[maxn], b[maxn];
void solve(){
    int n;
    cin >> n;
    int cnt = 0;
    /*tree<
        int,
        null_type,
        less_equal<int>,
        rb_tree_tag,
        tree_order_statistics_node_update> s;*/
    int mn = INT_MAX, mx = INT_MIN;
    for(int i = 1; i <= n; i++) {
        int x, y;
        cin >> x >> y;
        mx = max(mx, y + x);
        a[i] = mx;
        b[i] = x - y;
    }
    for(int i = n; i >= 1; i--) {
        if(i == n) {
            if(a[i] > a[i - 1]) {
                cnt++;
            }
        }
        else if(i == 1) {
            if(mn > b[i]) {
                cnt++;
            }
        }
        else{
            if(a[i] > a[i - 1] && mn > b[i]) {
                cnt++;
            }
        }
        mn = min(mn, b[i]);
    }
    cout << cnt;
}

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int tt = 1;
    //cin >> tt;
    while(tt--) {
        solve();
    }
}
#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...