Submission #1220695

#TimeUsernameProblemLanguageResultExecution timeMemory
1220695cjoaNile (IOI24_nile)C++20
13 / 100
19 ms3144 KiB
#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 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...