제출 #1232549

#제출 시각아이디문제언어결과실행 시간메모리
123254912baaterBoxes with souvenirs (IOI15_boxes)C++20
0 / 100
0 ms328 KiB
#include "boxes.h" #include <iostream> #include <algorithm> #include <vector> using namespace std; typedef long long ll; ll delivery(int N, int K, int L, int p[]) { vector<ll> l(N+1); vector<ll> r(N+1); l[0] = 0; r[N] = 0; for (int i = 0; i <= N; i++) { if (i == 0) { l[i] = 0; } else if (i <= K) { l[i] = 2*p[i-1]; } else { l[i] = 2*p[i-1] + l[i-K]; } } for (int i = N; i >= 0; i--) { if (i == N) { r[i] = 0; } else if (N-i <= K) { r[i] = 2*(L - p[i]); } else { r[i] = 2*(L - p[i]) + r[i+K]; } } // for (auto num : l) { // cout << num << " "; // } // cout << endl; // for (auto num : r) { // cout << num << " "; // } // cout << endl; // for (int i = 0; i <= N; i++) { // best = min(best, l[i]+r[i]); // } ll best = r[0]; if (K >= N) { return min(static_cast<ll>(L), best); } for (int i = K; i <= N; i++) { best = min(best, l[i-K] + r[i] + L); } return best; }
#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...