Submission #1221438

#TimeUsernameProblemLanguageResultExecution timeMemory
1221438totoroCatfish Farm (IOI22_fish)C++20
9 / 100
23 ms5704 KiB
#include <algorithm>
#include <array>
#include <map>
#include <numeric>
#include <vector>

#include "fish.h"

long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) {
    std::vector<long long> vals(N);
    for (int i = 0; i < M; ++i) vals[X[i]] = W[i];

    std::vector<std::array<long long, 3>> dp(N);  // 0 closed, 1 open but taken, 2 open and free
    for (int i = 1; i < N; ++i) {
        dp[i][0] = std::max({dp[i - 1][0], dp[i - 1][1], dp[i - 1][2] + vals[i - 1]});
        dp[i][1] = dp[i - 1][0] + vals[i];
        dp[i][2] = std::max(dp[i - 1][1], dp[i - 1][2]);
    }
    return *std::max_element(dp.back().begin(), dp.back().end());
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...