# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1216997 | matere | Boxes with souvenirs (IOI15_boxes) | C++20 | 0 ms | 0 KiB |
#include "boxes.h"
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[10000005],dp1[10000005],dp2[10000005];
int delivery(int n,k,l,b[]){
cin>>n>>k>>l;
for(int i=1;i<=n;i++){
a[i]=b[i-1];
dp1[i]=dp1[a[max(0ll,i-k)]]+a[i]+min(a[i],(l-a[i]));
// cout<<dp1[i]<<' ';
}
// cout<<endl;
for(int i=n;i>=1;i--){
dp2[i]=dp2[a[min(n+1,i+k)]]+(l-a[i])+min(a[i],(n-a[i]));
// cout<<dp2[i]<<' ';
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,dp1[i]+dp2[i+1]);
}
return ans;
}