Submission #1314816

#TimeUsernameProblemLanguageResultExecution timeMemory
1314816samarthkulkarniGym Badges (NOI22_gymbadges)C++20
0 / 100
901 ms197260 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"

void solution();
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    solution();
    return 0;
}


const int N = 5e3+10;

ll dp[N][N];
ll l[N], x[N];

void solution() {

    ll n; cin >> n;
    for (int i = 1; i <= n; i++) cin >> x[i];
    
    for (int i = 1; i <= n; i++) cin >> l[i];


    for (int i = 0; i <= n; i++) {
        fill(dp[i], dp[i]+n+1, 1e18);
    }
    dp[0][0] = 0;


    for (int i = 1; i <= n; i++) {
        for (int j = 0; j <= i; j++) {
            dp[i][j] = min(dp[i][j], dp[i-1][j]);

            if (j > 0 && l[i] >= dp[i-1][j-1]) {
                dp[i][j] = min(dp[i][j], dp[i-1][j-1] + x[i]);
            }
        }
    }


    for (int j = n; j >= 0; j--) {
        if (dp[n][j] != 1e18) {
            cout << j << endl;
            return;
        }
    }


}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...