Submission #340526

#TimeUsernameProblemLanguageResultExecution timeMemory
340526Kerim선물상자 (IOI15_boxes)C++17
100 / 100
551 ms248172 KiB
#include "boxes.h" #include "stdio.h" #define MAXN 10000002 #define ll long long template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;} ll pre[MAXN],suf[MAXN]; int arr[MAXN]; long long delivery(int n, int k, int l, int as[]) { for(int i=1;i<=n;i++) arr[i]=as[i-1]; arr[0]=0;arr[n+1]=l; for(int i=1;i<=n;i++){ pre[i]=arr[i]; if(i>=k)pre[i]+=pre[i-k]; } for(int i=n;i>=1;i--){ suf[i]=l-arr[i]; if(i+k<=n+1)suf[i]+=suf[i+k]; } ll ans=((n+k-1)/k)*1LL*l; for(int a=0;a<=n;a++) umin(ans,2*(pre[a]+suf[a+1])); for(int a=0;a+k<=n;a++) umin(ans,2*(pre[a]+suf[a+k+1])+l); /* for(int a=0;a<=n;a++) for(int b=a+1;b<=n+1;b++) umin(ans,2*(pre[a]+suf[b])+((b-a+k-2)/k)*1LL*l); */ 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...