Submission #248591

#TimeUsernameProblemLanguageResultExecution timeMemory
248591SprdaloCloud Computing (CEOI18_clo)C++17
100 / 100
576 ms1408 KiB
#include <bits/stdc++.h> using namespace std; #define int ll typedef long long ll; typedef long double ld; typedef pair<int, int> pi; typedef pair<ll, ll> pl; typedef vector<int> vi; typedef vector<ll> vl; typedef vector<double> vd; typedef vector<bool> vb; typedef vector<char> vc; typedef vector<string> vs; typedef vector<pi> vp; typedef vector<pl> vpl; struct st{ int c; int f; int x; }; bool cmp(st a, st b){ if (a.f == b.f) return a.c > b.c; return a.f > b.f; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cerr.tie(nullptr); int n; cin >> n; vector<st> a; for (int i = 0; i < n; ++i){ int c, f, x; cin >> c >> f >> x; a.push_back({c, f, -x}); } int m; cin >> m; for (int i = 0; i < m; ++i){ int c, f, x; cin >> c >> f >> x; a.push_back({-c, f, x}); } sort(a.begin(), a.end(), cmp); int len = a.size(); vi dp(100010, 0); for (int i = len - 1; i > -1; --i){ if (a[i].x > 0){ for (int j = 100000; j > -1; --j){ if (j + a[i].c >= 0 && a[i].c + j <= 100000) dp[j] = max(dp[j], dp[j + a[i].c] + a[i].x); } } else { for (int j = 0; j <= 100000; ++j){ if (j + a[i].c <= 100000) dp[j] = max(dp[j], dp[j + a[i].c] + a[i].x); } } } cout << dp[0] << '\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...