답안 #823989

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
823989 2023-08-13T11:10:49 Z vnm06 Shortcut (IOI16_shortcut) C++14
0 / 100
10 ms 340 KB
#include "shortcut.h"
#include<bits/stdc++.h>
using namespace std;

int N;
long long t[508], ct, diam=0;
long long dst[508], calc[508];
long long pr[508];
long long pr_le[508], pr_ri[508];

void precalc()
{
    for(int i=1; i<N; i++) pr[i]=pr[i-1]+dst[i];
    for(int i=0; i<N; i++)
    {
        for(int j=0; j<=i; j++) if(pr[i]-pr[j]+t[j]>pr_le[i]) pr_le[i]=pr[i]-pr[j]+t[j];
        for(int j=i; j<N; j++) if(pr[j]-pr[i]+t[j]>pr_ri[i]) pr_ri[i]=pr[j]-pr[i]+t[j];
    }
}

long long find_diam(int le, int ri)
{
    if(le>ri) swap(le, ri);
    if(ct>pr[ri]-pr[le]) return diam;
    swap(t[le], pr_le[le]);
    swap(t[ri], pr_ri[ri]);
    long long md=0, sum=pr[ri]-pr[le]+ct;
    for(int i=le; i<=ri; i++)
    {
        for(int j=i+1; j<=ri; j++)
        {
            long long st1=pr[j]-pr[i]+t[j]+t[i], st2=sum-pr[j]+pr[i]+t[j]+t[i];
            if(min(st1, st2)> md) md=min(st1, st2);
        }
    }
    swap(t[le], pr_le[le]);
    swap(t[ri], pr_ri[ri]);
    for(int i=0; i<=le; i++)
    {
        for(int j=i+1; j<=le; j++) if(md<t[i]+t[j]+pr[j]-pr[i]) md=t[i]+t[j]+pr[j]-pr[i];
    }
    for(int i=ri; i<N; i++)
    {
        for(int j=i+1; j<N; j++) if(md<t[i]+t[j]+pr[j]-pr[i]) md=t[i]+t[j]+pr[j]-pr[i];
    }
    return md;
}

int bst1[508];
int bst2[508];
stack<pair<int, int> > st;

long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c)
{
    N=n;
    ct=c;
    for(int i=0; i<n; i++) t[i]=d[i];
    for(int i=1; i<n; i++) dst[i]=l[i-1];
    precalc();
    for(int i=0; i<n; i++) diam=max(diam, t[i]+pr_ri[i]);
    ///cout<<diam<<endl;
    ///for(int i=0; i<n; i++) cout<<pr_le[i]<<" "<<pr_ri[i]<<endl;
    for(int i=0; i<n; i++)
    {
        bst1[i]=i;
        bst2[i]=n;
        calc[i]=diam;
        for(int j=i+1; j<n; j++)
        {
            if(i && j<bst1[i-1]-1) continue;
            long long nd=find_diam(i, j);
            if(nd<calc[i])
            {
                calc[i]=nd;
                bst1[i]=j;
                bst2[i]=j;
            }
            else if(nd==calc[i]) bst2[i]=j;
        }
    }
    ///for(int i=0; i<n; i++) cout<<calc[i]<<" "<<bst[i]<<endl;
    long long mid=1e18;
    for(int i=0; i<n; i++) if(calc[i]<mid) mid=calc[i];
    return mid;
    return mid;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB n = 4, 80 is a correct answer
2 Correct 1 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 0 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 1 ms 212 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 1 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 Correct 0 ms 212 KB n = 10, 117 is a correct answer
24 Correct 0 ms 212 KB n = 10, 336 is a correct answer
25 Correct 1 ms 212 KB n = 10, 438 is a correct answer
26 Correct 0 ms 212 KB n = 10, 206 is a correct answer
27 Correct 0 ms 212 KB n = 10, 636 is a correct answer
28 Correct 1 ms 212 KB n = 4, 2399 is a correct answer
29 Correct 0 ms 308 KB n = 10, 10992 is a correct answer
30 Correct 0 ms 212 KB n = 10, 3112 is a correct answer
31 Correct 6 ms 308 KB n = 100, 51000000001 is a correct answer
32 Correct 2 ms 340 KB n = 50, 197881272 is a correct answer
33 Incorrect 10 ms 332 KB n = 100, incorrect answer: jury 20969 vs contestant 20970
34 Halted 0 ms 0 KB -