이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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';
}
컴파일 시 표준 에러 (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... |