Submission #501820

#TimeUsernameProblemLanguageResultExecution timeMemory
501820alexddKnapsack (NOI18_knapsack)C++17
73 / 100
1062 ms1296 KiB
#include<iostream>
using namespace std;
int dp[2001],dp2[2001];
int main()
{
    int s,n,v,w,k;
    cin>>s>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v>>w>>k;
        for(int j=0;j<=s;j++)
        {
            for(int m=1;m<=k;m++)
            {
                if(j+m*w>s)
                    break;
                dp2[j+m*w]=max(dp2[j+m*w], dp[j]+m*v);
            }
        }
        for(int j=1;j<=s;j++)
        {
            dp[j]=dp2[j];
        }
    }
    int maxim=-1;
    for(int i=1;i<=s;i++)
    {
        if(dp[i]>maxim)
            maxim=dp[i];
    }
    cout<<maxim;
}
#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...