Submission #1244356

#TimeUsernameProblemLanguageResultExecution timeMemory
1244356datluong_04Knapsack (NOI18_knapsack)C++20
73 / 100
2 ms580 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define maxn 105
#define maxw 10005
#define FOR(i , a , b) for(int i = a ; i <= b; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

ll dp[maxw] , A[maxn], w[maxn] , v[maxn];

int main(){
    FAST;
    int n;
    ll W;
    cin >> W >> n;
    
    FOR(i , 1 , n) cin >> v[i] >> w[i] >> A[i];

    FOR(i , 1 , n){
        for(ll k = 1; A[i] > 0 ; k <<= 1){
            ll cnt = min(k , A[i]); 
            A[i] -= cnt;
            ll weight = w[i] * cnt;
            ll cost = v[i] * cnt;

            for(ll j = W ; j >= weight ; j--) dp[j] = max(dp[j] , dp[j - weight] + cost);
        }
    }

    cout << dp[W];
}
#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...