Submission #1297190

#TimeUsernameProblemLanguageResultExecution timeMemory
1297190chaitanyamehtaLightning Rod (NOI18_lightningrod)C++20
0 / 100
1115 ms443672 KiB
#include <bits/stdc++.h>
using namespace std;
using int64 = long long;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N;
    cin >> N;

    vector<int64> A(N), B(N);
    vector<int64> X(N), Y(N);

    for (int i = 0; i < N; ++i) {
        cin >> X[i] >> Y[i];
        A[i] = X[i] + Y[i];
        B[i] = Y[i] - X[i];
    }

    // prefix max B
    vector<int64> prefB(N);
    prefB[0] = B[0];
    for (int i = 1; i < N; ++i)
        prefB[i] = max(prefB[i-1], B[i]);

    // suffix max A
    vector<int64> suffA(N);
    suffA[N-1] = A[N-1];
    for (int i = N-2; i >= 0; --i)
        suffA[i] = max(suffA[i+1], A[i]);

    long long rods = 0;

    for (int i = 0; i < N; ++i) {
        bool coveredLeft  = (i > 0 && prefB[i-1] >= B[i]);
        bool coveredRight = (i+1 < N && suffA[i+1] >= A[i]);
        if (!coveredLeft && !coveredRight)
            rods++;
    }

    cout << rods << "\n";
}
#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...