Submission #1244442

#TimeUsernameProblemLanguageResultExecution timeMemory
1244442snowysmoKnapsack (NOI18_knapsack)C++20
29 / 100
2 ms1864 KiB
#include<bits/stdc++.h>
#define ll long long
#define endl '\n'

using namespace std;

const ll mx = 1e5+7, inf=-1;
ll s, n;
ll v[mx], w[mx], k[mx];
ll dp[mx][2005];
int main(){
    cin>>s>>n;
    if(n==1){
        ll vv, ww, kk; cin>>vv>>ww>>kk;
        cout<<min(s/ww*vv, kk*vv)<<endl;
        return 0;
    }
    for(ll i=0;i<=n;i++) dp[i][0]=0;
    for(ll i=0;i<=s;i++) dp[0][i]=0;
    for(ll i=1;i<=n;i++) cin>>v[i]>>w[i]>>k[i];
    for(ll j=1;j<=s;j++){
        for(ll i=1;i<=n;i++){
            dp[i][j]=dp[i-1][j];
            ll temp=0;
            if(j-w[i]>=0) temp=dp[i-1][j-w[i]]+v[i];
            dp[i][j]=max(dp[i][j], temp);
        }
    }
    cout<<dp[n][s]<<endl;

    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...