Submission #1231080

#TimeUsernameProblemLanguageResultExecution timeMemory
1231080banganNile (IOI24_nile)C++20
13 / 100
19 ms3400 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();
    ll sum = 0;
    for (int i=0; i<N; i++) sum += B[i];
    ll ans = LLONG_MAX;
    if (N%2 == 0) ans = sum;
    else for (int i=0; i<N; i++) ans = min(ans, sum - B[i] + A[i]);
    vector<ll> dp(N);
    dp[0] = A[0];
    if (1<N) dp[1] = B[0] + B[1];
    for (int i=2; i<N; i++) dp[i] = min(dp[i-1] + A[i], dp[i-2] + B[i] + B[i-1]);
    vector<ll> ret(Q);
    for (int i=0; i<Q; i++) {
        if (E[i]==1) ret[i] = dp[N-1];
        else ret[i] = ans;
    }
    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...