제출 #1259734

#제출 시각아이디문제언어결과실행 시간메모리
1259734vuvietCloud Computing (CEOI18_clo)C++20
36 / 100
159 ms327680 KiB
#include <bits/stdc++.h> using namespace std; struct Deal { int c, f; long long v; }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<Deal> a; int maxc = 0; for (int i = 0; i < n; i++) { Deal d; cin >> d.c >> d.f >> d.v; d.v = -d.v; // bán máy: chi phí âm a.push_back(d); maxc += d.c; } int m; cin >> m; for (int i = 0; i < m; i++) { Deal d; cin >> d.c >> d.f >> d.v; d.c = -d.c; // đơn hàng: cores âm a.push_back(d); } sort(a.begin(), a.end(), [](auto &x, auto &y) { return (x.f != y.f) ? x.f > y.f : x.v < y.v; }); const long long NEG = -4e18; int sz = a.size(); vector<vector<long long>> dp(sz + 1, vector<long long>(maxc + 1, NEG)); dp[0][0] = 0; for (int i = 1; i <= sz; i++) { for (int c = 0; c <= maxc; c++) { dp[i][c] = dp[i-1][c]; // không dùng giao dịch i int p = c - a[i-1].c; if (p >= 0 && p <= maxc && dp[i-1][p] != NEG) { dp[i][c] = max(dp[i][c], dp[i-1][p] + a[i-1].v); } } } cout << *max_element(dp[sz].begin(), dp[sz].end()) << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...