Submission #432189

#TimeUsernameProblemLanguageResultExecution timeMemory
432189chirathnirodhaBoxes with souvenirs (IOI15_boxes)C++17
0 / 100
1 ms204 KiB
#include "boxes.h" #include<bits/stdc++.h> using namespace std; #define PB push_back #define MP make_pair #define F first #define S second typedef long long ll; long long delivery(int n, int k, int l, int p[]) { int lc=0; ll ans=0; sort(p,p+n); while(true){ int nx=lc+k; if(nx-1>=n)break; if(p[nx-1]>l-p[nx-1])break; ans+=(ll) p[nx-1]*2; lc=nx; } int rc=n-1; while(true){ int nx=rc-k; if(nx+1<lc)break; if(p[nx+1]<l-p[nx+1])break; ans+=(ll) p[nx+1]*2; rc=nx; } int rem=rc-lc+1; if(rem>0){ ll mini=INT64_MAX; for(int i=lc;i<rc;i++){ mini=min(mini,(ll) p[i]*2+((ll)l-(ll)p[i+1])*2); } mini=min(mini,(ll)p[rc]*2); mini=min(mini,((ll)l-(ll)p[lc])*2); if(rem<=k)mini=min(mini,(ll)l); else mini=min(mini,(ll)l*2); ans+=mini; } 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...