제출 #1174903

#제출 시각아이디문제언어결과실행 시간메모리
1174903nguyenkhangninh99Cloud Computing (CEOI18_clo)C++17
100 / 100
656 ms2120 KiB
#include <bits/stdc++.h> using namespace std; #define int long long struct item{ int c, f, v; }; bool cmp(item x, item y){ return (x.f == y.f ? x.v < y.v : x.f > y.f); } vector<item> a; signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; int sumc = 0; for(int i = 0; i < n; i++){ int c, f, v; cin >> c >> f >> v; a.push_back({c, f, -v}); sumc += c; } int m; cin >> m; for(int i = 0; i < m; i++){ int c, f, v; cin >> c >> f >> v; a.push_back({-c, f, v}); } sort(a.begin(), a.end(), cmp); vector<int> dp(sumc + 1, -1e18); dp[0] = 0; for(auto [c, f, v]: a){ vector<int> ndp = dp; for(int i = 0; i <= sumc; i++){ if(0 <= i - c && i - c <= sumc && dp[i - c] != -1e18) ndp[i] = max(ndp[i], dp[i - c] + v); } dp = ndp; } 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...