#include "shortcut.h"
#include<bits/stdc++.h>
using namespace std;
const long long maxn=1000000+10;
long long inf=1e16,n,c;
long long alld[maxn],mainres=inf,mxa[maxn],mxb[maxn];
vector<long long>all;
long long pors(long long l,long long r){
long long b=all[r]-all[l]+c;
long long fake=0;
for(long long i=0;i<n;i++){
if(i<=l){
fake=max(fake,alld[i]+all[l]-all[i]+min(c,b-c)+mxb[r]);
fake=max(fake,alld[i]+all[i]-(i==0?0:all[i-1])+(i==0?0:mxa[i-1]));
}else if(i>=r){
fake=max(fake,alld[i]+all[i]-all[r]+min(c,b-c)+mxa[l]);
fake=max(fake,alld[i]-all[i]+all[i+1]+mxb[i+1]);
}else{
fake=max(fake,min(all[i]-all[l],b-(all[i]-all[l]))+mxa[l]+alld[i]);
fake=max(fake,min(all[r]-all[i],b-(all[r]-all[i]))+mxb[r]+alld[i]);
}
}
for(long long i=l;i<=r;i++){
for(long long j=i+1;j<=r;j++){
fake=max(fake,min(b-(all[j]-all[i]),all[j]-all[i])+alld[i]+alld[j]);
}
}
return fake;
}
void solve(long long l,long long r,long long tl=0,long long tr=n-1){
// cout<<l<<" "<<r<<" "<<tl<<" "<<tr<<endl;
if(tl>tr||l>r){
return ;
}
int mid=(l+r)>>1;
long long fake=inf,wh1=-1,wh2=-1;
for(int i=tr;i>=tl;i--){
long long z=pors(i,mid);
if(z<fake){
fake=z;
wh1=i;
wh2=i;
}else if(z<=fake){
fake=z;
wh1=i;
}
}
mainres=min(mainres,fake);
solve(l,mid-1,tl,wh2);
solve(mid+1,r,wh1,tr);
}
long long find_shortcut(int n_, std::vector<int> l, std::vector<int> d, int c_)
{
n=n_;
c=c_;
all.push_back(0);
alld[0]=d[0];
l.push_back(0);
for(long long i=1;i<n;i++){
all.push_back(all.back()+l[i-1]);
alld[i]=d[i];
}
for(long long i=0;i<n;i++){
if(i!=0){
mxa[i]=max(mxa[i-1]+l[i-1],alld[i]);
}else{
mxa[i]=alld[i];
}
}
all[n]=all[n-1];
for(long long i=n-1;i>=0;i--){
mxb[i]=max(mxb[i+1]+l[i],alld[i]);
}
solve(0,n-1);
return mainres;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
4444 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
1 ms |
4444 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
1 ms |
4444 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
0 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4440 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
4444 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
1 ms |
4444 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
4444 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
1 ms |
4440 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
1 ms |
4444 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
4444 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
1 ms |
4444 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
4444 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
4444 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
1 ms |
4444 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
1 ms |
4444 KB |
n = 2, 122 is a correct answer |
23 |
Correct |
1 ms |
4444 KB |
n = 10, 117 is a correct answer |
24 |
Correct |
1 ms |
4444 KB |
n = 10, 336 is a correct answer |
25 |
Correct |
1 ms |
4444 KB |
n = 10, 438 is a correct answer |
26 |
Incorrect |
1 ms |
4444 KB |
n = 10, incorrect answer: jury 206 vs contestant 217 |
27 |
Halted |
0 ms |
0 KB |
- |