제출 #142842

#제출 시각아이디문제언어결과실행 시간메모리
142842daniel920712선물상자 (IOI15_boxes)C++14
10 / 100
3 ms504 KiB
#include "boxes.h" #include <stdio.h> #include <iostream> using namespace std; bool have[10000005]={0}; long long delivery(int N, int K, int L, int p[]) { long long ans=0; int i,l=1e9+7,r=-1,j; for(i=0;i<N;i++) { if(p[i]<=L/2) { if((i+1)%K==0) { ans+=p[i]*2; for(j=i-K+1;j<=i;j++) have[j]=1; //printf("%lld\n",ans); } } else break; } for(i=N-1;i>=0;i--) { if(p[i]>L/2) { if((N-i)%K==0) { ans+=(L-p[i])*2; for(j=i;j-i<K;j++) have[j]=1; //printf("%lld\n",ans); } } else break; } for(j=0;j<N;j++) { if(have[j]==0) { l=min(l,j); r=max(r,j); } } if(r!=-1) { //printf("%lld %lld\n",l,r); ans+=min(min(p[r]*2,(L-p[l]*2)),L); if((r-l)>=K) ans+=min(min(p[l+K]*2,(L-p[l+K]*2)),min(p[r-K]*2,(L-p[r-K]*2))); } 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...