Submission #1231086

#TimeUsernameProblemLanguageResultExecution timeMemory
1231086banganNile (IOI24_nile)C++20
17 / 100
2093 ms4836 KiB
#include "nile.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long

std::vector<long long> calculate_costs(std::vector<int> W, std::vector<int> A, std::vector<int> B, std::vector<int> E) {
    int N = W.size();
    int Q = E.size();
    vector<int> ord(N);
    iota(ord.begin(), ord.end(), 0);
    sort(ord.begin(), ord.end(), [&](int i, int j) {
        return W[i]<W[j];
    });
    vector<ll> ret;
    for (int d : E) {
        vector<ll> dp(N);
        dp[0] = A[ord[0]];
        if (1<N && W[ord[1]] - W[ord[0]] <= d) dp[1] = B[ord[0]] + B[ord[1]];
        else if (1<N) dp[1] = A[ord[0]] + A[ord[1]];
        for (int i=2; i<N; i++) {
            dp[i] = dp[i-1] + A[ord[i]];
            if (W[ord[i]] - W[ord[i-1]] <= d) dp[i] = min(dp[i], dp[i-2] + B[ord[i]] + B[ord[i-1]]);
        }
        ret.push_back(dp[N-1]);
    }
    return ret;
}
#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...