Submission #1154689

#TimeUsernameProblemLanguageResultExecution timeMemory
1154689vicvicKnapsack (NOI18_knapsack)C++20
73 / 100
1092 ms328 KiB
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstdint>
#define int long long
using namespace std;
const int NMAX=1e5, WMAX=2e3, KMAX=1e9;
int n, gmax, dp[100005];
int32_t main ()
{
    ios :: sync_with_stdio (0);
    cin.tie (nullptr);
    cin >> gmax >> n;
    int t=0;
    for (int i=1;i<=n;i++)
    {
        int v, w, k;
        cin >> v >> w >> k;
        int pw=1, cnt=1;
        while (pw<=k)
        {
            for (int i=gmax;i>=w*pw;i--)
            {
                dp[i]=max (dp[i], dp[i-w*pw]+v*pw);
            }
            k -= pw;
            pw*=2;
            cnt++;
        }

        for (int i = gmax; i >= w * k; i--)
        {
            dp[i] = max(dp[i], dp[i - w * k] + v * k);
        }
    }
    cout << dp[gmax];
    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...