This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define ppb pop_back
#define eb emplace_back
typedef long double ld;
int N, M, R, c[2005], f[2005], v[2005], C[2005], F[2005], V[2005], mem[255][25005];
int dp(int cur, int n, int lim) {
if (n < 0) return -1e9;
if (cur == N + M + 1) return 0;
if (mem[cur][n + 12500] != -1) return mem[cur][n + 12500];
int r = -1;
if (cur > N && F[cur - N] <= lim) r = max(dp(cur + 1, n, lim), dp(cur + 1, n - C[cur - N], lim) + V[cur - N]);
else if (cur <= N && f[cur] >= lim) r = max(dp(cur + 1, n, lim), dp(cur + 1, n + c[cur], lim) - v[cur]);
else r = dp(cur + 1, n, lim);
return mem[cur][n + 12500] = r;
}
main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for (int i = 1; i <= N; i++) cin >> c[i] >> f[i] >> v[i];
cin >> M;
for (int i = 1; i <= M; i++) cin >> C[i] >> F[i] >> V[i];
for (int i = 1; i <= N; i++) {
memset(mem, -1, sizeof mem);
R = max(R, dp(1, 0, f[i]));
}
cout << R << '\n';
}
Compilation message (stderr)
clo.cpp:24:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main() {
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |