Submission #1306507

#TimeUsernameProblemLanguageResultExecution timeMemory
1306507denchik_23Knapsack (NOI18_knapsack)C++20
12 / 100
1 ms572 KiB
#include <bits/stdc++.h> using namespace std; int main() { long long s, n; cin >> s >> n; vector<long long> w(n+1), p(n+1),k(n+1); for (long long i = 1; i <= n; i++) { cin >> p[i] >> w[i] >> k[i]; } vector<vector<long long>> dp(n+1, vector<long long>(s+1, -INT_MAX)); for (long long i = 0; i <= s; i++) { dp[0][i] = 0; } for (long long i = 1; i <= n; i++) { for (long long c = 1; c <= s; ++c) { dp[i][c] = dp[i-1][c]; for (long long l = min(k[i], c / w[i]); l >= 1; --l) { dp[i][c] = max(dp[i][c], dp[i-1][c - l * w[i]] + l * p[i]); } } } cout << *std::max_element(dp.back().begin(), dp.back().end()) << endl; 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...