제출 #1177281

#제출 시각아이디문제언어결과실행 시간메모리
1177281madamadam3나일강 (IOI24_nile)C++20
17 / 100
2094 ms5052 KiB
#include "nile.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; using vi = vector<int>; // input // W[i] = weight of artifact i // A[i] = cost of transporting artifact i by itself // B[i] = cost of transporting artifact i with another artifact // E[j] = maximum weight different for artifacts going together for query j // output // R[i] = min cost of transporting all artifacts, when D = R[j] vector<ll> calculate_costs(vi W, vi A, vi B, vi E) { int N = W.size(), Q = E.size(); vector<ll> R(Q, 0); vector<int> indices(N); iota(indices.begin(), indices.end(), 0); sort(indices.begin(), indices.end(), [&](const auto &a, const auto &b) { return W[a] <= W[b]; }); // reverse(indices.begin(), indices.end()); for (int j = 0; j < Q; j++) { vector<int> cur = indices; ll cost = 0; ll pairs = 0; ll single = 0; for (int i = 0; i < N; i++) { if (i < N - 1 && abs(W[cur[i + 1]] - W[cur[i]]) <= E[j]) { pairs++; i++; } else { single++; } } R[j] = 2 * pairs + 2 * single; } 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...