제출 #646341

#제출 시각아이디문제언어결과실행 시간메모리
646341PetyCloud Computing (CEOI18_clo)C++14
100 / 100
344 ms1228 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; const ll INF = -1e18; const int MOD = 1e9 + 7; int n, m; ll dp[100002]; struct lol{ int c, f, x; bool operator < (const lol &other) { if (f == other.f) return c > other.c; return f > other.f; } } v[4002]; int main () { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> v[i].c >> v[i].f >> v[i].x; v[i].x = -v[i].x; } cin >> m; for (int i = 1; i <= m; i++) { cin >> v[i + n].c >> v[i + n].f >> v[i + n].x; v[i + n].c = -v[i + n].c; } sort(v + 1, v + n + m + 1); fill(dp, dp + 50 * n + 1, INF); dp[0] = 0; for (int i = 1; i <= n + m; i++) { if (v[i].c > 0) { for (int j = 50 * n - v[i].c; j >= 0; j--) dp[j + v[i].c] = max(dp[j] + v[i].x, dp[j + v[i].c]); } else { for (int j = -v[i].c; j <= 50 * n; j++) { dp[j + v[i].c] = max(dp[j + v[i].c], dp[j] + v[i].x); } } } ll ans = 0; for (int i = 0; i <= 50 * n; i++) ans = max(ans, dp[i]); cout << ans; 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...