제출 #1158131

#제출 시각아이디문제언어결과실행 시간메모리
1158131exyztKnapsack (NOI18_knapsack)C++20
37 / 100
1095 ms49728 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int s, n; cin >> s >> n; vector<int> v(n), w(n), k(n); vector<ll> vn, wn; for (int i = 0; i < n; i++) { cin >> v[i] >> w[i] >> k[i]; int cnt = 1; while (cnt <= k[i]) { k[i] -= cnt; vn.push_back(cnt * v[i]); wn.push_back(cnt * w[i]); } if (k[i]) { vn.push_back(k[i] * v[i]); wn.push_back(k[i] * w[i]); } } vector<ll> dp(s + 1); for (int i = 0; i < wn.size(); i++) { for (int j = s; j >= 0; j--) { if (j - wn[i] >= 0) dp[j] = max(dp[j], dp[j - wn[i]] + vn[i]); } } cout << dp[s] << '\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...