#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n + 1), b(n + 1); // 1-indexed
for (int i = 1; i <= n; i++) cin >> a[i] >> b[i];
vector<int> dp(n + 1, 0); // all dp_i = 0 initially
dp[1] = 1;
for (int i = 2; i <= n; i++) {
int prev = dp[i - 1];
int take = 0;
if (i - a[i] - 1 >= 1) take = dp[i - a[i] - 1] + 1;
else take = 1; // dp_j = 0 if j < 1, so 0 + 1 = 1
dp[i] = max(prev, take);
}
cout << dp[n];
return 0;
}
| # | 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... |