Submission #1297197

#TimeUsernameProblemLanguageResultExecution timeMemory
1297197chaitanyamehtaLightning Rod (NOI18_lightningrod)C++20
0 / 100
1037 ms234344 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; if (!(cin >> N)) return 0; vector<ll> A(N), C(N); for (int i = 0; i < N; ++i) { ll X, Y; cin >> X >> Y; A[i] = X + Y; // used for right coverage (suffix max) C[i] = Y - X; // used for left coverage (prefix max) } // suffix max of A vector<ll> suffA(N); suffA[N-1] = A[N-1]; for (int i = N - 2; i >= 0; --i) suffA[i] = max(A[i], suffA[i+1]); // prefix max of C (we'll update on the fly; no separate array needed) ll prefMaxC = LLONG_MIN; long long rods = 0; for (int i = 0; i < N; ++i) { bool coveredLeft = (i > 0 && prefMaxC >= C[i]); bool coveredRight = (i + 1 < N && suffA[i+1] >= A[i]); if (!coveredLeft && !coveredRight) ++rods; // update prefix max of C for next iterations prefMaxC = max(prefMaxC, C[i]); } cout << rods << '\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...