Submission #1172383

#TimeUsernameProblemLanguageResultExecution timeMemory
1172383dbekarysKnapsack (NOI18_knapsack)C++20
37 / 100
331 ms327680 KiB
#include <bits/stdc++.h> using namespace std; //vector<int>v[N]; int dp[10007][2007]; 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; for(int i=1,count;i<=n;i++){ cin>> b[i]>>a[i]>>count; k.push_back(count); for(int j=0;j<count;j++){ v1.push_back(a[i]); v2.push_back(b[i]); } /*for (int power = 1; power <= count; power *= 2) { v1.push_back(a[i] * count); v2.push_back(b[i] * count); count -= power; } if (count > 0) { v1.push_back(a[i] * count); v2.push_back(b[i] * count); }*/ } if(n == 1) { int s = m / a[1] ; if(s >= k[0]) { cout << b[1] * k[0] ; } else { cout << b[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...