Submission #1018249

#TimeUsernameProblemLanguageResultExecution timeMemory
1018249arkash707Knapsack (NOI18_knapsack)C++17
37 / 100
1055 ms348 KiB
#include<iostream> #include<string> #include<algorithm> #include<unordered_set> #include<unordered_map> #include<vector> #define ll long long using namespace std; int mod = 1000000007; int s, n; vector<ll> c(2001, 0); vector<ll> w(2001, 0); vector<ll> q(2001, 0); vector<ll> dp(2001, -1); long long solve() { ll ans = 0; dp[0] = 0; for (int i=1; i<=n; i++) { for (int j=s; j>=0; j--) { //buy from 0 to q[i] of good i for (int k=0; k<=q[i]; k++) { if (j-k*w[i] < 0 || dp[j-k*w[i]] == -1) continue; dp[j] = max(dp[j], dp[j-k*w[i]] + c[i] * k); } ans = max(ans, dp[j]); } } return ans; } int main() { cin >> s >> n; for (int i=1; i<=n; i++) cin >> c[i] >> w[i] >> q[i]; cout << solve() << "\n"; }
#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...