제출 #1326910

#제출 시각아이디문제언어결과실행 시간메모리
1326910jumpKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms2732 KiB
#include <bits/stdc++.h>
#define int long long
int value[100010];
int weight[100010];
int amount[100010];
int dpw[2010];//most cost secured from the weight
signed main(){
    int s,n;
    std::cin >> s >> n;
    for(int i=1;i<=n;i++){
        std::cin >> value[i] >> weight[i] >> amount[i];
    }
    //for(int i=0;i<=s;i++)std::cout << dpw[i] << ' ';
        //std::cout << '\n';
    for(int j=1;j<=n;j++){
        for(int i=s;i>=0;i--)
        for(int k=1;k<=std::min(amount[j],s);k++){
            if(i-k*weight[j]<0)continue;
            dpw[i]=std::max(dpw[i-k*weight[j]]+k*value[j],dpw[i]);
            //std::cout << dpw[i] << ' ' << i << ' ' << k << "\\\\n";
            //dpw[i]=std::max(dpw[i-1],dpw[i]);
        }
        //for(int i=0;i<=s;i++)std::cout << dpw[i] << ' ';
        //std::cout << '\n';
    }
    //for(int i=0;i<=s;i++)std::cout << dpw[i] << ' ';
    //2000*2000*100000
    std::cout << dpw[s];
}
#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...