Submission #1243531

#TimeUsernameProblemLanguageResultExecution timeMemory
1243531firegirlwaterboyCloud Computing (CEOI18_clo)C++20
100 / 100
362 ms2220 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAX = 1e5 + 5, MOD = 1e9 + 7, MAXL = 61; const ll INF = 1e18; void solve() { int n; cin >> n; vector<vector<ll>> info; for (int i = 0; i < n; i++) { ll c, f, v; cin >> c >> f >> v; info.push_back({f, v, c}); } int m; cin >> m; for (int i = 0; i < m; i++) { ll c, f, v; cin >> c >> f >> v; info.push_back({f, -v, -c}); } sort(info.begin(), info.end(), greater<vector<ll>>()); ll dp[MAX][2]; for (int i = 1; i < MAX; i++) { dp[i][1] = -INF; } dp[0][1] = 0; int curr = 0; for (int i = 0; i < info.size(); i++) { for (int j = 0; j < MAX; j++) { dp[j][curr] = dp[j][curr ^ 1]; if (j - info[i][2] >= 0 && j - info[i][2] < MAX) { dp[j][curr] = max(dp[j][curr], dp[j - info[i][2]][curr ^ 1] - info[i][1]); } } curr ^= 1; } curr ^= 1; ll ans = 0; for (int i = 0; i < MAX; i++) { ans = max(ans, dp[i][curr]); } cout << ans << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); 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...
#Verdict Execution timeMemoryGrader output
Fetching results...