제출 #1336405

#제출 시각아이디문제언어결과실행 시간메모리
1336405yc11Knapsack (NOI18_knapsack)C++20
73 / 100
1096 ms16276 KiB
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<int> n1;
vector<int> n2;
signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
    int n,s;
    cin>>s>>n;
    for (int i =0;i<n;i++){
        int v,w,k;
        cin>>v>>w>>k;
        int c=  1;
        while (k>0){
            if (k>=c){
                n1.push_back(v*c);
                n2.push_back(w*c);
            }
            else {
                n1.push_back(v*k);
                n2.push_back(w*k);
            }
            k = k-c;
            c=c*2;
        }
    }
    vector<int> s1;
    s1.assign(s+1,0);

    for (int i = 0;i<n1.size();i++){
        for (int j = s;j>=n2[i];j--){
            s1[j] = max(s1[j],s1[j-n2[i]]+n1[i]);
        }
    }
    cout<<s1[s];
    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...