Submission #1239358

#TimeUsernameProblemLanguageResultExecution timeMemory
1239358repsak메기 농장 (IOI22_fish)C++20
9 / 100
17 ms3912 KiB
// file:///C:/Andet/HTXProgrammering/Diverse/Statements/statement_en%20(17).pdf
// 3. (9 points) Y [i] = 0 (for each i such that 0 ≤ i ≤ M − 1)

#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

long long max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
    vector<int> grid(N);

    for(int i = 0; i < M; i++){
        assert(Y[i] == 0);
        grid[X[i]] = W[i];
    }

    vector<ll> dp(N);

    for(int i = 0; i < N; i++){
        ll right = i + 1 < N ? grid[i + 1] : 0;
        ll left = i - 1 >= 0 ? grid[i - 1] : 0;
        ll mid = grid[i];

        ll minusThree   = i - 3 >= 0 ? dp[i - 3] + left + right     : 0;
        ll minusTwo     = i - 2 >= 0 ? dp[i - 2] + right            : 0;
        ll minusOne     = i - 1 >= 0 ? dp[i - 1] - mid + right      : 0;
        ll prev         = i - 1 >= 0 ? dp[i - 1]                    : 0;

        dp[i] = max({
            minusThree,
            minusTwo,
            minusOne,
            left + right,
            prev
        });
    }

    ll best = 0;
    for(int i = 0; i < dp.size(); i++){
        best = max(best, dp[i]);
    }

    return best;
}

// #include "grader.cpp"
#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...