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 <vector>
#include <bits/stdc++.h>
using namespace std;
long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,
std::vector<int> W) {
int line[N+1]; for(auto &x: line) x = 0;
for(int i = 0; i<M; i++){
line[X[i]] = W[i];
}
long long dp[4][N]; for(auto &item: dp) for(auto &cell: item) cell = 0;
/*
0 : xx
1 : xy
2 : yx
3 : yy
*/
dp[0][0] = dp[2][0] = 0;
dp[1][0] = dp[3][0] = 0;
dp[0][1] = 0; dp[1][1] = line[0]; dp[2][1] = line[1]; dp[3][1] = 0;
for(int i = 2; i<N; i++){
dp[0][i] = max(dp[0][i-1], dp[2][i-1]);
dp[1][i] = max(dp[0][i-1]+line[i-1], dp[2][i-1]);
dp[2][i] = max(dp[1][i-1]+line[i], dp[3][i-1]+line[i]);
dp[3][i] = max(dp[1][i-1], dp[3][i-1]);
}
return max({dp[0][N-1],dp[1][N-1],dp[2][N-1],dp[3][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... |