Submission #1363088

#TimeUsernameProblemLanguageResultExecution timeMemory
1363088deepak23232Knapsack (NOI18_knapsack)C++20
73 / 100
1095 ms2764 KiB
#include <iostream>
#include <bits/stdc++.h>

using namespace std;

#define int long long


void solve() {
    int s,n;
    cin>>s>>n;
    vector<int> prices(n);
    vector<int> size(n);
    vector<int> copies(n);

    for(int i=0; i<n; i++){
        cin>>prices[i];
        cin>>size[i];
        cin>>copies[i];
    }

    vector<int> dp(s+1,INT_MIN);
    dp[0] = 0;

    int maxi = -1;

    for(int i=0; i<n; i++){
        int cnt = 1;
        while(cnt<=copies[i] && cnt*size[i]<=s){
            for(int j=s; j>=size[i]; j--){
                dp[j] = max(dp[j],prices[i]+dp[j-size[i]]);
                maxi = max(maxi,dp[j]);
            }
            cnt++;
        }
    }
    cout<<maxi<<endl;

    
}

signed main() {
    int t=1;
    // cin>>t;
    while (t--) {
        solve();
    }
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...