# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
607497 | MrDeboo | 선물상자 (IOI15_boxes) | C++17 | 561 ms | 164356 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
long long delivery(int n, int k, int l, int p[]) {
deque<int>x,y;
for(int i=0;i<k;i++)y.push_back(0);
for(int i=0;i<n;i++){
if(p[i]==0)continue;
int X=l-p[i];
if(X<p[i])x.push_front(X);
else y.push_back(p[i]);
}
for(int i=0;i<k;i++)x.push_front(0);
long long X[k+1];
long long Y[k+1];
long long ans=0,f=0;
for(int i=x.size()-1;i>=0;i-=k)f+=x[i]*2;
for(int i=y.size()-1;i>=0;i-=k)f+=y[i]*2;
ans=f;
memset(X,0,sizeof X);
memset(Y,0,sizeof Y);
int g=1;
for(int i=x.size()-1;i>=0;i--){
if(x[i]==0)break;
X[g++]+=(x[i]-x[i-1])*2;
if(g==k+1)g=1;
}
g=1;
for(int i=y.size()-1;i>=0;i--){
if(y[i]==0)break;
Y[g++]+=(y[i]-y[i-1])*2;
if(g==k+1)g=1;
}
for(int i=1;i<=k;i++){
X[i]+=X[i-1];
Y[i]+=Y[i-1];
}
for(int i=0;i<=k;i++)ans=min(ans,f-X[i]-Y[k-i]+l);
return ans;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |