제출 #1346449

#제출 시각아이디문제언어결과실행 시간메모리
1346449SW_143Knapsack (NOI18_knapsack)C++20
73 / 100
119 ms327680 KiB
#include <bits/stdc++.h>

#define ll long long int

using namespace std;

int main()
{   
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int S, N; cin>>S>>N; 
    
    vector<int> w(N+1, 0); 
    vector<int> v(N+1, 0); 
    vector<int> k(N+1, 0); 
    
    for(int i = 1; i<=N; ++i)
    {
        cin>>v[i]>>w[i]>>k[i];
    }
    
    vector<vector<ll>> dp(N+1, vector<ll>(S+1, 0));  
    
    for(int i = 1; i<=N; ++i)
    {
        for(int j = 1; j<=S; ++j)
        {
            for(int idk = 0; idk<=min(k[i], j/w[i]); ++idk)
            {
                if(j - idk*w[i] >= 0)
                    dp[i][j] = max(dp[i-1][j-idk*w[i]]+idk*v[i], dp[i][j]);
            }
        }
    }
    
    cout<<dp[N][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...