Submission #1309534

#TimeUsernameProblemLanguageResultExecution timeMemory
1309534zxzuamLightning Rod (NOI18_lightningrod)C++20
100 / 100
494 ms78372 KiB
#include<cstdio>
#include<cctype>
#include <algorithm>
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("O3,unroll-loops,fast-math")
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//#define int long long
#define I128 //||is_same<T,__int128_t>::value||is_same<T,__uint128_t>::value
using namespace std;
//using namespace __gnu_pbds;
template<typename T>enable_if_t<is_integral<T>::value I128,void> readmain(T &x)
{
	bool neg=false;int c=getchar();
	for(;!isdigit(c);c=getchar())if(c=='-')neg=true;
	for(x=0;isdigit(c);c=getchar())x=(T)(10*x+(c-'0'));
	if(neg)x=-x;
}
template<typename T>T& read(T &x){readmain(x);return x;}
template<typename T,typename ...Tr>void read(T &x,Tr&... r){readmain(x);read(r...);}
constexpr int maxn = 1e7 + 1;
int a[maxn], b[maxn];
void solve(){
    int n;
    read(n);
    int cnt = 0;
    /*tree<
        int,
        null_type,
        less_equal<int>,
        rb_tree_tag,
        tree_order_statistics_node_update> s;*/
    int mn = 2000000001, mx = -2000000001;
    for(int i = 1; i <= n; i++) {
        int x, y;
        read(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]);
    }
    printf("%d", cnt);
}

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