Submission #1265718

#TimeUsernameProblemLanguageResultExecution timeMemory
1265718julia_08Boxes with souvenirs (IOI15_boxes)C++20
100 / 100
359 ms213892 KiB
#include <bits/stdc++.h> #include "boxes.h" using ll = long long; using namespace std; const ll INF = 1e18; ll delivery(int n, int K, int L, int p[]){ vector<ll> pref(n + 1, 0), suf(n + 1, 0); for(int i=0; i<n; i++){ int j = max(0, i - K + 1); if(j > 0) pref[i] = pref[j - 1]; pref[i] += min({L, 2 * p[i], 2 * (L - p[j])}); } for(int i=(n - 1); i>=0; i--){ int j = min(n - 1, i + K - 1); if(j < n - 1) suf[i] = suf[j + 1]; suf[i] += min({L, 2 * p[j], 2 * (L - p[i])}); } ll ans = INF; // na verdade, o 0 nao importa // bruta o que vai ser diferente for(int i=0; i<n; i++){ int j = min(n - 1, i + K - 1); ll cur_ans = min({L, 2 * p[j], 2 * (L - p[i])}); if(i > 0) cur_ans += pref[i - 1]; if(j < n - 1) cur_ans += suf[j + 1]; ans = min(ans, cur_ans); } return ans; }
#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...