Submission #1257179

#TimeUsernameProblemLanguageResultExecution timeMemory
1257179inkvizytorCloud Computing (CEOI18_clo)C++20
100 / 100
338 ms1352 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector<pair<ll, pair<ll, ll>>> a; for (int i = 0; i < n; i++) { ll c, f, v; cin >> c >> f >> v; a.push_back({f, {c, -v}}); } int m; cin >> m; for (int i = 0; i < m; i++) { ll c, f, v; cin >> c >> f >> v; a.push_back({f, {-c, v}}); } sort(a.begin(), a.end(), greater<pair<ll, pair<ll ,ll>>>()); vector<ll> dp ((1e5)+100, -(ll)1e18); dp[0] = 0; for (auto x : a) { if (x.second.first > 0) { for (ll i = (1e5)-1; i >= 0; i--) { if ((dp[i] != -(ll)1e18) && i+x.second.first >= 0) { dp[i+x.second.first] = max(dp[i+x.second.first], dp[i]+x.second.second); } } } else { for (ll i = 0; i <= 1e5; i++) { if ((dp[i] != -(ll)1e18) && i+x.second.first >= 0) { dp[i+x.second.first] = max(dp[i+x.second.first], dp[i]+x.second.second); } } } } ll w = 0; for (ll i : dp) { w = max(w, i); } cout << w << '\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...