#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |