제출 #424384

#제출 시각아이디문제언어결과실행 시간메모리
424384SuhaibSawalha1선물상자 (IOI15_boxes)C++17
20 / 100
206 ms268 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; long long delivery(int N, int K, int L, int p[]) { if (N <= 10) { int per[N]; iota(per, per + N, 0); long long ans = 9e18; do { long long res = 0; int mx = 0; for (int i = 0; i < N; ++i) { if (i % K == 0) { res += min(2 * mx, L); mx = 0; } mx = max(mx, p[per[i]]); } res += min(2 * mx, L); ans = min(ans, res); } while (next_permutation(per, per + N)); return ans; } long long ans, A[N], A2[N], KS = 0; for (int i = 0; i < N; ++i) { if (i % K == 0 && i) { KS += min(2 * p[i - 1], L); } A[i] = KS + min(2 * p[i], L); } KS = 0; for (int i = N - 1; ~i; --i) { if ((N - i - 1) % K == 0 && i < N - 1) { KS += min(2 * (L - p[i + 1]), L); } A2[i] = KS + min(2 * (L - p[i]), L); } ans = min(A[N - 1], A2[0]); for (int i = 0; i < N - 1; ++i) { ans = min(ans, A[i] + A2[i + 1]); } 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...