Submission #1272793

#TimeUsernameProblemLanguageResultExecution timeMemory
1272793kongpob7kKnapsack (NOI18_knapsack)C++20
73 / 100
1094 ms2708 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

struct A{
    int vi,wi,ki;
}a[100010];

int dp[2010];
int32_t main(){
    cin.tie(nullptr)->sync_with_stdio(false);
    int s,n;
    cin >> s >> n;
    for(int i=1;i<=n;i++){
        cin >> a[i].vi >> a[i].wi >> a[i].ki;
        a[i].ki=min(a[i].ki,s/a[i].wi);
    }

    for(int i=1;i<=n;i++){
        for(int j=1;j<=a[i].ki;j++){
            for(int k=s;k>=0;k--){
                if(k-a[i].wi>=0)dp[k]=max(dp[k],dp[k-a[i].wi]+a[i].vi);
            }
        }
    }
    cout << dp[s] << '\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...