Submission #1318841

#TimeUsernameProblemLanguageResultExecution timeMemory
1318841killerzaluuBouquet (EGOI24_bouquet)C++20
8 / 100
80 ms2736 KiB
#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 - b[i] - 1 >= 1) take = dp[i - b[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 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...