제출 #568389

#제출 시각아이디문제언어결과실행 시간메모리
568389CSQ31Boxes with souvenirs (IOI15_boxes)C++17
100 / 100
552 ms222288 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long int ll; ll delivery(int n, int k, int L, int p[]) { vector<ll>pref(n,0),suff(n,0); for(int i=0;i<n;i++){ pref[i] = 2LL*p[i]; if(i-k>=0)pref[i]+=pref[i-k]; } for(int i=n-1;i>=0;i--){ suff[i] = 2LL*(L-p[i]); if(i+k<n)suff[i]+=suff[i+k]; } ll ans = 1e18; ans = min(ans,suff[0]); ans = min(ans,pref[n-1]); for(int i=0;i+1<n;i++)ans = min(ans,pref[i] + suff[i+1]); for(int i=k-1;i<n;i++){ ll cost = L; if(i-k>=0)cost+=pref[i-k]; if(i+1<n)cost+=suff[i+1]; ans = min(ans,cost); } return ans; } /* int main() { int n,k,l; cin>>n>>k>>l; int p[n]; for(int i=0;i<n;i++)cin>>p[i]; cout<<delivery(n,k,l,p); } */
#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...