#include <bits/stdc++.h>
using namespace std;
vector<int> make_sorted_index(vector<pair<int, int>> const& values) {
vector<int> index(values.size());
iota(index.begin(), index.end(), 0);
stable_sort(index.begin(), index.end(), [&values](int a, int b) { return values[a].first < values[b].first; } );
return index;
}
int main() {
int n; cin >> n;
vector<pair<int, int>> flowers(n+1, {INT_MAX, INT_MAX});
vector<int> dp(n, 0);
for(int i = 0; i < n; i++)
cin >> flowers[i].first >> flowers[i].second;
for (int i=0; i<n; i++) {
for (int j=n-1; j>0; j--) {
if (j!=i) {
if (j+flowers[j].second<i&& i-flowers[i].first> j) {
dp[i]= max(dp[i], dp[j]+1);
}
else if (j-flowers[j].first>i&& i+flowers[i].second <j) {
dp[i]= max(dp[i], dp[j]+1);
}
}
}
}
sort(dp.begin(), dp.end());
cout << dp[n-1]<< endl;
}
# | 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... |