#include <bits/stdc++.h>
using namespace std;
bool comp(pair <int, int> a, pair <int, int> b) {
return a.second < b.second;
}
int main() {
int n;
cin >> n;
vector <pair <int, int>> nums(n*3);
for (int i = 1; i <= n; i++) {
int l, r;
cin >> l >> r;
if (l == 0)
l--;
nums[i].first = max(0, i - l);
nums[i].second = min(n, i + r);
}
sort(nums.begin()+1, nums.begin() + n + 1, comp);
vector <int> dp(n*3);
int p = 1;
for (int i = 1; i <= n; i++) {
dp[i] = dp[i-1];
while (p <= n && nums[p].second == i) {
dp[i] = max(dp[i], dp[nums[p].first] + 1);
p++;
}
}
cout << dp[n] << '\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... |