Submission #747217

#TimeUsernameProblemLanguageResultExecution timeMemory
747217Abrar_Al_SamitBoxes with souvenirs (IOI15_boxes)C++17
50 / 100
49 ms21728 KiB
#include <bits/stdc++.h> #include "boxes.h" using namespace std; const int nax = 1e3 + 3; const long long INF = 1e18; long long dp[nax][nax]; int n, k, L; int a[nax]; //a[0] = a[n+1] = 0 long long solve(int i, int j) { if(i>n) return 0; long long &ret = dp[i][j]; if(ret!=-1) return ret; ret = INF; if(j!=k) ret = solve(i+1, k-1) + min(a[i], L-a[i]) + min(a[i+1], L-a[i+1]); if(a[i+1]==0 || j>0) { ret = min(ret, solve(i+1, j-1) + min(abs(a[i+1]-a[i]), L-abs(a[i+1]-a[i]))); } return ret; } long long delivery(int N, int K, int l, int p[]) { n = N, k = K, L = l; memset(dp, -1, sizeof dp); for(int i=1; i<=n; ++i) { a[i] = p[i-1]; } return solve(0, k); }
#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...