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;
const int maxN = 100005;
const long long INF = 1e18;
// 0: fish exist
// 1: pier
// 2: claimed
long long dp[3][maxN];
long long val[maxN];
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,
std::vector<int> W) {
for (auto x : Y) {
assert (x == 0);
}
long long sum = 0;
for(int i = 0; i < M; i++) {
val[X[i] + 1] = W[i];
}
for(int i = 1; i <= N; i++) {
sum += val[i];
}
assert (sum > 0);
dp[0][0] = 0;
dp[1][0] = -INF;
dp[2][0] = -INF;
for(int i = 1; i <= N + 1; i++){
dp[0][i] = max({dp[2][i - 1], dp[0][i - 1]});
dp[1][i] = max({dp[1][i - 1] + val[i + 1] - val[i], dp[0][i - 1] + val[i - 1] + val[i + 1], dp[2][i - 1] + val[i + 1]});
dp[2][i] = dp[1][i - 1];
}
return max(dp[0][N + 1], dp[2][N + 1]);
}
# | 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... |