Submission #169886

#TimeUsernameProblemLanguageResultExecution timeMemory
169886AlexLuchianovBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
604 ms294136 KiB
#include "boxes.h" #include <iostream> using ll = long long; #define MIN(a, b) (((a) < (b)) ? (a) : (b)) #define MAX(a, b) (((a) < (b)) ? (b) : (a)) int const nmax = 10000000; ll const inf = 1000000000000000000LL; ll pref[1 + nmax], suff[1 + nmax]; long long delivery(int N, int K, int L, int p[]) { for(int i = 0; i < N; i++) if(i < K) pref[i] = MIN(2 * p[i], L); else pref[i] = pref[i - K] + MIN(2 * p[i], L); for(int i = N - 1; 0 <= i; i--) if(i + K < N) suff[i] = suff[i + K] + MIN(2 * (L - p[i]), L); else suff[i] = MIN(2 * (L - p[i]), L); ll result = inf; for(int i = 0; i <= N; i++) { ll cost = 0; if(0 < i) { cost += pref[i - 1]; } if(i < N) cost += suff[i]; if(cost < result) result = cost; } return result; }
#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...