Submission #1318852

#TimeUsernameProblemLanguageResultExecution timeMemory
1318852killerzaluuBouquet (EGOI24_bouquet)C++20
28 / 100
3095 ms2736 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<int> l(n + 1), r(n + 1); // 1-indexed
    for (int i = 1; i <= n; i++) cin >> l[i] >> r[i];

    vector<int> dp(n + 1, 1); // dp[i] = 1 initially, because we pick flower i
    int ans = 1;

    for (int i = 2; i <= n; i++) {
        int left_ignore = l[i];
        for (int j = i - left_ignore - 1; j >= 1; j--) {
            if (j + r[j] < i) { // if picking j does not block i
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
        ans = max(ans, dp[i]);
    }

    cout << ans;
    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...