# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
999058 |
2024-06-15T05:54:01 Z |
변재우(#10896) |
Shortcut (IOI16_shortcut) |
C++14 |
|
1 ms |
4444 KB |
#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1000010;
const ll INF=1e16;
ll c, s[N], d[N], l[N], r[N], l2[N], r2[N];
ll find_shortcut(int n, vector<int> l_, vector<int> d_, int c_)
{
ll ret=0;
c=c_;
for(int i=2; i<=n; i++) s[i]=s[i-1]+l_[i-2];
for(int i=1; i<=n; i++) d[i]=d_[i-1];
l[0]=INF;
for(int i=1; i<=n; i++) l[i]=min(l[i-1], s[i]-d[i]);
for(int i=n; i>=1; i--) r[i]=max(r[i+1], s[i]+d[i]);
for(ll i=1, m=0; i<=n; i++) {
l2[i]=max(l2[i-1], d[i]+m);
m=max(m, d[i])+s[i+1]-s[i];
}
for(ll i=n, m=0; i>=1; i--) {
r2[i]=max(r2[i+1], d[i]+m);
m=max(m, d[i])+s[i]-s[i-1];
}
for(int i=1; i<n; i++) ret=max(ret, -l[i]+r[i+1]);
for(int i=1; i<=n; i++) {
for(int j=i+1; j<=n; j++) if(s[j]-s[i]>c) {
ll tmp=0;
ll lx=max(0ll, s[i]-l[i-1]), rx=max(0ll, r[j+1]-s[j]);
tmp=max({l2[i-1], r2[i+1], lx+rx+c});
for(int k=i; k<=j; k++) tmp=max(tmp, lx+d[k]+min(s[k]-s[i], c+s[j]-s[k]));
for(int k=i; k<=j; k++) tmp=max(tmp, rx+d[k]+min(s[j]-s[k], c+s[k]-s[i]));
for(int k=i; k<=j; k++) for(int l=k+1; l<=j; l++)
tmp=max(tmp, d[k]+d[l]+min(s[l]-s[k], c+s[k]-s[i]+s[j]-s[l]));
ret=min(ret, tmp);
}
}
return ret;
}
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
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 |
1 ms |
4444 KB |
n = 3, 4 is a correct answer |
5 |
Correct |
1 ms |
4444 KB |
n = 2, 62 is a correct answer |
6 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
7 |
Correct |
1 ms |
4444 KB |
n = 3, 29 is a correct answer |
8 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
9 |
Correct |
1 ms |
4444 KB |
n = 2, 3 is a correct answer |
10 |
Correct |
1 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 |
1 ms |
4444 KB |
n = 3, 3000000000 is a correct answer |
14 |
Incorrect |
1 ms |
4444 KB |
n = 4, incorrect answer: jury 3000000001 vs contestant 4000000000 |
15 |
Halted |
0 ms |
0 KB |
- |