#include<bits/stdc++.h>
#define ll long long
#define inf 10000000000
#include "shortcut.h"
using namespace std;
ll L[100005],R[100005],mxL[100005],mxR[100005];
ll find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c)
{
for (int i = 1; i < n-1; i++) L[i] = l[i], R[i-1] = l[i];
for (int i = 0; i < n; i++) {
if (i == 0) mxL[i] = d[i];
else
mxL[i] = max(1ll*d[i],mxL[i-1] + L[i]);
}
for (int i = n-1; i > 0; i--) {
if (i == n-1) mxR[i] = d[i];
else
mxR[i] = max(1ll*d[i],mxR[i+1] + R[i]);
}
ll ans = inf;
for (int i = 0; i < n; i++) {
ll length = 0;
for (int j = i - 1; j >= 0; j--) {
length+= R[j];
ll localMin = mxR[i] + mxL[j] + min(length,1ll*c);
ll smallL = 0;
for (int k = j+1; k <= i; k++) {
if (k != j) smallL += L[k];
localMin = max(localMin,mxL[i] + d[k] + min(smallL,length + c - smallL));
if (k != i) localMin = max(localMin,mxR[i] + d[k] + min(smallL + c,length - smallL));
int partL = 0;
for (int e = j; e < k; e++) {
if (e != j) partL += L[e];
localMin = max(localMin,d[e] + d[k] + min(smallL - partL, length + c - (smallL - partL)));
}
}
ans = min(ans,localMin);
}
}
return ans;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 4, 80 is a correct answer |
2 |
Incorrect |
5 ms |
384 KB |
n = 9, incorrect answer: jury 110 vs contestant 90 |
3 |
Halted |
0 ms |
0 KB |
- |