#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;
long long fl[200001],fr[200001];
long long p[200001];
long long ans1[200001],ans2[200001];
long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c)
{
fl[0]=d[0];
ans1[0]=d[0];
for(long long i=1;i<n;i++)
{
fl[i]=max(l[i-1]+fl[i-1],(long long)d[i]);
ans1[i]=max(ans1[i-1],fl[i-1]+l[i-1]+d[i]);
}
fr[n-1]=d[n-1];
ans2[n-1]=d[n-1];
for(long long i=n-2;i>=0;i--)
{
fr[i]=max(l[i]+fr[i+1],(long long)d[i]);
ans2[i]=max(ans2[i+1],fr[i+1]+l[i]+d[i]);
}
l.push_back(0);
p[0]=l[0];
for(long long i=1;i<l.size();i++)
p[i]=p[i-1]+l[i];
long long ans=1e18;
for(long long i=0;i<n;i++)
{
for(long long j=i;j<n;j++)
{
long long curr=fl[i]+fr[j];
long long x=i+d[i],y=j+d[j];
long long all=p[j]-l[j]-p[i]+l[i];
for(long long z=i;z<=j;z++)
{
long long d1=p[z]-l[z]-p[i]+l[i];
long long d2=all-d1+c;
x=max(x,min(d1,d2)+d[z]);
d1=p[i]-l[i]-p[z]+l[z];
d2=all-d1+c;
y=max(y,min(d1,d2)+d[z]);
}
curr=max(curr,fl[i]+x);
curr=max(curr,fr[i]+y);
for(long long z1=i;z1<=j;z1++)
{
for(long long z2=z1+1;z2<=j;z2++)
{
long long d1=p[z2]-l[z2]-p[z1]+l[z1];
long long d2=all-d1+c;
curr=max(curr,d[z1]+d[z2]+min(d1,d2));
}
}
curr=max(curr,ans1[i]);
curr=max(curr,ans2[j]);
//cout<<i<<" "<<j<<" "<<curr<<" "<<fl[i]<<" "<<fr[i]<<" "<<x<<" "<<y<<endl;
ans=min(ans,curr);
}
}
return ans;
}
Compilation message (stderr)
shortcut.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
shortcut_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |