#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
clo.cpp:24:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main() {
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
50296 KB |
Output is correct |
2 |
Correct |
31 ms |
50304 KB |
Output is correct |
3 |
Incorrect |
77 ms |
50304 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
31 ms |
50304 KB |
Output is correct |
2 |
Correct |
57 ms |
50304 KB |
Output is correct |
3 |
Correct |
689 ms |
50424 KB |
Output is correct |
4 |
Correct |
685 ms |
50296 KB |
Output is correct |
5 |
Runtime error |
98 ms |
101752 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
103 ms |
50296 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
90 ms |
50296 KB |
Output is correct |
2 |
Correct |
89 ms |
50304 KB |
Output is correct |
3 |
Runtime error |
93 ms |
101752 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
51 ms |
50304 KB |
Output is correct |
2 |
Correct |
505 ms |
50304 KB |
Output is correct |
3 |
Runtime error |
88 ms |
101624 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
50296 KB |
Output is correct |
2 |
Correct |
31 ms |
50304 KB |
Output is correct |
3 |
Incorrect |
77 ms |
50304 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |