답안 #999058

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
999058 2024-06-15T05:54:01 Z 변재우(#10896) Shortcut (IOI16_shortcut) C++14
0 / 100
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;
}
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -
# 결과 실행 시간 메모리 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 -