Submission #1220856

#TimeUsernameProblemLanguageResultExecution timeMemory
1220856overwatch9Bouquet (EGOI24_bouquet)C++20
28 / 100
3095 ms2632 KiB
#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+1);
    for (int i = 1; i <= n; i++) {
        cin >> nums[i].first >> nums[i].second;
    }
    vector <int> dp(n+1);
    // let dp[i] = maximum number of tulips that may be picked if the ith tulip is def picked
    for (int i = 1; i <= n; i++) {
        int l = i - nums[i].first;
        dp[i] = 1;
        for (int j = l-1; j >= 1; j--) {
            int r = j + nums[j].second + 1;
            if (r <= i)
                dp[i] = max(dp[i], dp[j] + 1);
        }
    }
    cout << *max_element(dp.begin(), dp.end()) << '\n';
}
#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...