제출 #1212517

#제출 시각아이디문제언어결과실행 시간메모리
1212517cubedKnapsack (NOI18_knapsack)C++20
37 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define endl '\n'
 
const int MOD = 1e9+7;
const int inf =1e9;

bool multi=false;

int main()
{
    ll t=1;
    if (multi) cin>>t;
 
    while (t--) {
        int s, n;
        cin>>s>>n;

        vector<pair<int, int>> items;
        for (int i=0; i<n; i++) {
            int v,w,k;
            cin>>v>>w>>k;

            for (int p=1; k>0; p<<=1) {
                int cnt = min(p, k);
                items.push_back({v*cnt, w*cnt});
                k-=cnt;
            }
        }

        vector<int> dp(s+1, 0);
        for (auto item:items) {
            int val=item.first, weight=item.second;
            for (int i=s; i>=weight; i--) {
                dp[i]=max(dp[i], dp[i-weight]+val);
            }
        }

        cout<<dp[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...