Submission #1172355

#TimeUsernameProblemLanguageResultExecution timeMemory
1172355dbekarysKnapsack (NOI18_knapsack)C++20
37 / 100
46 ms49728 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7;
const int N=1e4+7;
const long long besk=1e18;
int used[N],p[N],c=0;
//vector<int>v[N];

int dp[2000][N];
signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie();
    
    int m,n;
    cin>> m>>n;
    int a[n+1],b[n+1];
    vector<int>v1,v2,k;
    k.push_back(0);
    for(int i=1,c;i<=n;i++){
        cin>> b[i]>>a[i]>>c;
        k.push_back(c);
        for(int k=0;k<c;k++){
        v1.push_back(a[i]),v2.push_back(b[i]);
        }
    }
    if(n == 1) {
        int s = m / b[1] ;
        if(s >= k[1]) {
            cout << a[1] * k[1] ;
        }
        else {
            cout << a[1] * s ;
        }
        return 0;
    }
    for(int i=1;i<=v1.size();i++){
        for(int j=1;j<=m;j++){
            dp[i][j]=dp[i-1][j];
            if(v1[i-1]<=j){
                dp[i][j]=max(dp[i][j],dp[i-1][j-v1[i-1]]+v2[i-1]);
            }
        }
    }
    cout<< dp[v1.size()][m];
}
#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...