제출 #1326905

#제출 시각아이디문제언어결과실행 시간메모리
1326905jumpKnapsack (NOI18_knapsack)C++20
0 / 100
1 ms332 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=s;i>=0;i--){
        for(int j=1;j<=n;j++){
            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[i],dpw[i]);
                dpw[i]=std::max(dpw[i-1],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...