#include "nile.h"
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B,
vector<int> E) {
// subtask 2: W[i] = i + 1
const int N = W.size();
if (N == 1)
return vector<long long>(N, A[0]);
long long base_cost = 0;
for (int i = 0; i < N; i++)
base_cost += B[i];
// cerr << "base_cost: " << base_cost << endl;
const int Q = E.size();
vector<long long> R(Q, base_cost);
if (N % 2 != 0) {
vector<int> extra_cost(N);
for (int i = 0; i < N; ++i)
extra_cost[i] = A[i] - B[i];
// for (int x : extra_cost)
// cerr << x << ' ';
// cerr << endl;
int min_extra_cost[2] = { extra_cost[0], extra_cost[1] };
for (int i = 2; i < N; ++i) {
int par = i % 2;
min_extra_cost[par] = min(min_extra_cost[par], extra_cost[i]);
}
// cerr << min_extra_cost[0] << ' ' << min_extra_cost[1] << endl;
for (int j = 0; j < Q; ++j) {
if (E[j] > 1) {
R[j] += min(min_extra_cost[0], min_extra_cost[1]);
}
else {
R[j] += min_extra_cost[0];
}
}
}
return R;
}
# | 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... |