#include <bits/stdc++.h>
#include "shortcut.h"
using namespace std;
const long long INF = 1e18 + 5;
vector<long long> prefix, leftmax, rightmax, leftansmax, rightansmax;
long long getdist(int x, int y){
return prefix[y - 1] - prefix[x - 1];
}
long long find_shortcut(int n, vector<int> ln, vector<int> d, int c){
ln.insert(ln.begin(), 0), d.insert(d.begin(), 0);
long long ans = INF;
prefix.assign(n + 2, 0);
leftmax.assign(n + 2, 0), rightmax.assign(n + 2, 0);
leftansmax.assign(n + 2, 0), rightansmax.assign(n + 2, 0);
for(int i = 1; i < n; i++) prefix[i] = prefix[i - 1] + ln[i];
for(int i = 1; i <= n; i++){
leftmax[i] = max(leftmax[i - 1] + ln[i - 1], (long long)d[i]);
leftansmax[i] = max(leftansmax[i - 1], leftmax[i - 1] + ln[i - 1] + d[i]);
}
for(int i = n; i >= 1; i--){
rightmax[i] = max(rightmax[i + 1] + ln[i], (long long)d[i]);
rightansmax[i] = max(rightansmax[i + 1], rightmax[i + 1] + ln[i] + d[i]);
}
for(int l = 1; l <= n; l++){
for(int r = l; r <= n; r++){
long long curans = leftmax[l] + min(getdist(l, r), (long long)c) + rightmax[r];
curans = max({curans, leftansmax[l], rightansmax[r]});
for(int i = l + 1; i <= r - 1; i++){
curans = max(curans, min(d[i] + getdist(l, i) + leftmax[l], d[i] + getdist(i, r) + c + leftmax[l]));
curans = max(curans, min(d[i] + getdist(i, r) + rightmax[r], d[i] + getdist(l, i) + c + rightmax[r]));
}
int ptr = l + 2;
for(int i = l + 1; i <= r - 1; i++){
while(ptr + 1 <= r - 1 && min(getdist(i, ptr + 1) + d[i] + d[ptr +1], getdist(l, i) + c + getdist(ptr +1, r) + d[i] + d[ptr +1]) >= min(getdist(i, ptr) + d[i] + d[ptr], getdist(l, i) + c + getdist(ptr, r) + d[i] + d[ptr])){
ptr++;
}
curans = max(curans, min(getdist(i, ptr) + d[i] + d[ptr], getdist(l, i) + c + getdist(ptr, r) + d[i] + d[ptr]));
}
ans = min(ans, curans);
}
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 4, 80 is a correct answer |
2 |
Correct |
0 ms |
212 KB |
n = 9, 110 is a correct answer |
3 |
Correct |
0 ms |
212 KB |
n = 4, 21 is a correct answer |
4 |
Correct |
1 ms |
212 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
0 ms |
212 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
0 ms |
212 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
0 ms |
212 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
0 ms |
212 KB |
n = 2, 2000000001 is a correct answer |
11 |
Correct |
0 ms |
212 KB |
n = 2, 3000000000 is a correct answer |
12 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
13 |
Correct |
0 ms |
212 KB |
n = 3, 3000000000 is a correct answer |
14 |
Correct |
0 ms |
212 KB |
n = 4, 3000000001 is a correct answer |
15 |
Correct |
0 ms |
212 KB |
n = 4, 4000000000 is a correct answer |
16 |
Correct |
0 ms |
212 KB |
n = 5, 4000000000 is a correct answer |
17 |
Correct |
0 ms |
224 KB |
n = 10, 1000000343 is a correct answer |
18 |
Correct |
0 ms |
212 KB |
n = 10, 3189 is a correct answer |
19 |
Correct |
0 ms |
212 KB |
n = 10, 7000000000 is a correct answer |
20 |
Correct |
0 ms |
212 KB |
n = 5, 12 is a correct answer |
21 |
Correct |
0 ms |
212 KB |
n = 5, 25 is a correct answer |
22 |
Correct |
0 ms |
212 KB |
n = 2, 122 is a correct answer |
23 |
Incorrect |
0 ms |
212 KB |
n = 10, incorrect answer: jury 117 vs contestant 116 |
24 |
Halted |
0 ms |
0 KB |
- |