Submission #1309536

#TimeUsernameProblemLanguageResultExecution timeMemory
1309536thecrazycandyLightning Rod (NOI18_lightningrod)C++20
100 / 100
647 ms117272 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC target("avx,avx2,fma")
using namespace std;
#define ll int
#define sped_up ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define rall(v) (v).rbegin(), (v).rend()
#define all(v) (v).begin(), (v).end()
#define pb push_back
#define S second
#define F first
const ll INF = (ll)1e9 + 1, INFL = (ll)1e9 + 1;
const ll mod = (ll)1e9 + 7, MAXN = (ll)1e7 + 7;
ll x[MAXN], y[MAXN], p[MAXN];
int main() {
    sped_up;
    ll n;
    cin >> n;
    string s;
    ll cnt = 0;
    ll sf = INF*2;
    p[0] = -INF*2;
    getline(cin, s);
    for (int i = 1; i <= n; i++) {
        bool ok = 0;
        getline(cin, s);
        for (int j = 0; j < s.size(); j++) {
            if (!('0' <= s[j] && s[j] <= '9')) {
                ok = 1;
                continue;
            }
            if (!ok) x[i] = x[i] * 10 + s[j] - '0';
            else y[i] = y[i] * 10 + s[j] - '0';
        }
        p[i] = max(p[i - 1], x[i] + y[i]);
    }
    for (int i = n; i >= 1; i--) {
        if (sf > x[i] - y[i] && x[i] + y[i] > p[i - 1]) cnt++;
        sf = min(sf, x[i] - y[i]);
    }
    cout << cnt;
}
#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...