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 "fish.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
vector w(N + 2, vector<ll>(N + 1));
for (int i = 0; i < M; i++) {
w[X[i] + 1][Y[i] + 1] = W[i];
}
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
w[i][j] += w[i][j - 1];
}
}
vector dp1(N + 1, vector<ll>(N));
for (int i = 1; i <= N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k <= j; k++) {
dp1[i][j] = max(dp1[i][j], dp1[i - 1][k] + w[i - 1][j + 1] - w[i - 1][k + 1]);
}
}
}
vector dp2(N + 1, vector<ll>(N));
for (int i = N - 1; i >= 0; i--) {
for (int j = 0; j < N; j++) {
for (int k = 0; k <= j; k++) {
dp2[i][j] = max(dp2[i][j], dp2[i + 1][k] + w[i + 2][j + 1] - w[i + 2][k + 1]);
}
}
}
ll ans = 0;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
ans = max(ans, dp1[i + 1][j] + dp2[i][j]);
}
}
return ans;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |