# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1245320 | nibert | Nile (IOI24_nile) | C++20 | 0 ms | 0 KiB |
#include <vector>
#include <algorithm>
using namespace std;
vector<long long> calculate_costs(
vector<int> W, vector<int> A,
vector<int> B, vector<int> E)
{
int N = W.size();
long long baseB = 0;
for (int i = 0; i < N; ++i) {
baseB += B[i];
}
int min_extra = 1e9;
if (N % 2 == 1) {
for (int i = 0; i < N; ++i) {
if (i % 2 == 0) continue;
min_extra = min(min_extra, A[i] - B[i]);
}
}
vector<long long> result;
for (int d : E) {
// D is always >= 1
if (N % 2 == 0)
result.push_back(baseB);
else
result.push_back(baseB + min_extra);
}
return result;
}
q