제출 #1291131

#제출 시각아이디문제언어결과실행 시간메모리
1291131kutomei3Knapsack (NOI18_knapsack)C++20
73 / 100
434 ms327680 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long void solve() { int mw, n; cin >> mw >> n; vector<int> aw[mw + 1]; for (int i = 0; i < n; i++) { int w, v, a; cin >> v >> w >> a; int pm = min(a, mw / w + 1); for (int j = 0; j < pm; j++) { aw[w].push_back(v); } } for (int i = 1; i <= mw; i++) { sort(aw[i].rbegin(), aw[i].rend()); } int dp[mw + 1]; for (int i = 0; i <= mw; i++) dp[i] = 0; for (int i = 1; i <= mw; i++) { int pm = min(mw / i + 1, (int)aw[i].size()); for (int j = 0; j < pm; j++) { for (int p = mw; p >= i; p--) { dp[p] = max(dp[p - i] + aw[i][j], dp[p]); } } } //for (auto& p : dp) cout << p << ' '; cout << dp[mw]; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int t = 1; //cin >> t; while (t--) { solve(); } 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...