제출 #1161835

#제출 시각아이디문제언어결과실행 시간메모리
1161835CiprianKnapsack (NOI18_knapsack)C++20
17 / 100
2 ms1864 KiB

#include <bits/stdc++.h>
using namespace std;
#define int long long 
int dp[(int)1e5+5][(int)2005];
bool dp1[(int)1e5+5][(int)2005];
int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int s,n;
    cin>>s>>n;
    vector<int>v(n+1),w(n+1),k(n+1);
    for(int i=1; i<=n; i++){
        cin>>v[i]>>w[i]>>k[i];
        
    }int mx=0;
    if(n==1){
        int r=s/w[1];
        if(r>k[1])cout<<k[1]*v[1]<<endl;
        else cout<<r*v[1]<<endl;
    }else{
        for(int i=1; i<=n; i++){
            for(int j=0; j<=s; j++){
                dp[i][j]=dp[i-1][j];
                if(j-w[i]>=0)dp[i][j]=max(dp[i][j], dp[i-1][j-w[i]]+v[i]);
                
                mx=max(mx, dp[i][j]);
            }
        }
    }
    cout<<mx<<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...