제출 #601719

#제출 시각아이디문제언어결과실행 시간메모리
601719pakhomoveeCloud Computing (CEOI18_clo)C++17
54 / 100
765 ms2132 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <map> using namespace std; #define int long long const int inf = 1e18; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; vector<pair<pair<int, int>, pair<int, int>>> vv; for (int i = 0; i < n; ++i) { int c, f, v; cin >> c >> f >> v; vv.push_back({ { f, c }, { v, 1 } }); } int m; cin >> m; for (int i = 0; i < m; ++i) { int c, f, v; cin >> c >> f >> v; vv.push_back({ { f, c }, { v, 2 } }); } sort(vv.rbegin(), vv.rend()); vector<int> dp(100001, -inf); dp[0] = 0; for (pair<pair<int, int>, pair<int, int>> x : vv) { vector<int> dp1 = dp; auto [p, q] = x; auto [f, c] = p; auto [v, t] = q; if (t == 1) { for (int j = 100000; j >= c; --j) { dp1[j] = max(dp1[j - c] - v, dp1[j]); } } else { for (int j = 0; j + c <= 100000; ++j) { dp1[j] = max(dp1[j], dp1[j + c] + v); } } dp = dp1; } cout << *max_element(dp.begin(), dp.end()); }
#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...