Submission #1273504

#TimeUsernameProblemLanguageResultExecution timeMemory
127350444100Knapsack (NOI18_knapsack)C++20
49 / 100
1095 ms1232 KiB
#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define pub push_back
#define pob pop_back
#define fi first
#define se second
using namespace std;
typedef long long ll;
const ll Max=1e5+5,D=2e3+5;
ll W,n;
ll dp[Max],app[Max],c[Max],w[Max];
void sub1()
{
    ll i,j,k,cnt,ans;
    cnt=min(W/w[1],app[1]);
    ans=c[1]*cnt;
    cout<<ans;
    return;
}
int main()
{
    fast
    memset(dp,0,sizeof(dp));
    ll i,j,k;
    cin>>W>>n;
    for(i=1;i<=n;++i)
        cin>>c[i]>>w[i]>>app[i];
    if(n==1)
    {
        sub1();
        return 0;
    }
    for(i=1;i<=n;++i)
    {
        for(k=1;k<=app[i];++k)
        {
            for(j=W;j>=w[i];--j)
                dp[j]=max(dp[j],dp[j-w[i]]+c[i]);
        }
    }
    /*for(i=1;i<=n;++i)
        cout<<dp[i]<<" ";
    cout<<"\n";*/
    cout<<dp[W];
    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...