#include "bits/stdc++.h"
#include "fish.h"
// #include "grader.cpp"
using namespace std;
#define ll long long
ll max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w) {
vector <vector <ll>> a(n+2, vector <ll> (n+2, 0));
vector <vector <vector <ll>>> dp(n+2, vector <vector <ll>> (n+2, vector <ll> (2, 0)));
for(int i = 0; i < m; i++) {
a[x[i] + 1][y[i] + 1] = w[i];
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
a[i][j] += (!j ? 0 : a[i][j-1]);
}
}
vector <ll> b(n+1, 0);
ll ans = 0;
for(int i = 1; i <= n; i++) {
for(int j = 0; j <= n; j++) {
for(int j1 = 0; j1 <= n; j1++) {
// dp[i][j] = max(dp[i][j], a[i+1][j] + dp[i-1][j1] - a[i][j1] + a[i-1][j] - a[i-1][j1]);
if(j1 <= j) dp[i][j][0] = max(dp[i][j][0], dp[i-1][j1][0] + a[i-1][j] - a[i-1][j1]);
if(j1 >= j) dp[i][j][1] = max(dp[i][j][1], dp[i-1][j1][1] + a[i][j1] - a[i][j]);
}
dp[i][j][1] = max(dp[i][j][1], dp[i][j][0]);
ans = max(ans, dp[i][j][1] + a[i+1][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... |