제출 #1187682

#제출 시각아이디문제언어결과실행 시간메모리
1187682simona1230Boxes with souvenirs (IOI15_boxes)C++17
100 / 100
377 ms274348 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; long long n,k,l; const long long maxn=1e7+5; long long a[maxn]; long long p[maxn]; long long s[maxn]; long long delivery(int N, int K, int L, int P[]) { long long id=0; for(long long i=0; i<N; i++) if(P[i]==0)id=i+1,N--; n=N; k=K; l=L; for(long long i=0; i<n; i++) a[i]=P[id+i]; for(long long i=0; i<n; i++) { p[i]=a[i]*2; if(i-k>=0)p[i]+=p[i-k]; } for(long long i=n-1; i>=0; i--) { s[i]=(l-a[i])*2; if(i+k<=n-1)s[i]+=s[i+k]; } long long ans=s[0]; if(n<=k)ans=min(ans,l); for(int i=0; i<n; i++) ans=min(ans,p[i]+s[i+1]); if(n>k) { ans=min(ans,l+p[n-k-1]); ans=min(ans,l+s[k]); for(int i=0; i<n; i++) if(i+k+1<=n-1)ans=min(ans,p[i]+l+s[i+k+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...