답안 #1022152

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1022152 2024-07-13T10:33:58 Z amirhoseinfar1385 Shortcut (IOI16_shortcut) C++17
0 / 100
1 ms 4552 KB
#include "shortcut.h"
#include<bits/stdc++.h>
using namespace std;
const long long maxn=1000000+10;
long long inf=1e16,n,c;
long long alld[maxn],mainres=inf,mxa[maxn],mxb[maxn];
vector<long long>all;

long long pors(long long l,long long r){
    long long b=all[r]-all[l]+c;
    long long fake=0;
    for(long long i=0;i<n;i++){
        if(i<=l){
            fake=max(fake,alld[i]+all[l]-all[i]+min(c,b-c)+mxb[r]);
            fake=max(fake,alld[i]+all[i]-(i==0?0:all[i-1])+(i==0?0:mxa[i-1]));
        }else if(i>=r){
            fake=max(fake,alld[i]+all[i]-all[r]+min(c,b-c)+mxa[l]);
            fake=max(fake,alld[i]-all[i]+all[i+1]+mxb[i+1]);
        }else{
            fake=max(fake,min(all[i]-all[l],b-(all[i]-all[l]))+mxb[r]+alld[i]);
            fake=max(fake,min(all[r]-all[i],b-(all[r]-all[i]))+mxa[l]+alld[i]);
        }
    }
  //  cout<<" "<<l<<" "<<r<<" "<<fake<<endl;
    for(long long i=l;i<=r;i++){
        for(long long j=i+1;j<=r;j++){
            fake=max(fake,min(b-(all[j]-all[i]),all[j]-all[i])+alld[i]+alld[j]);
        }
    }
//    cout<<" "<<l<<" "<<r<<" "<<fake<<endl;
    return fake;
}

void solve(long long l,long long r,long long tl=0,long long tr=n-1){
    for(long long i=0;i<n;i++){
        for(long long j=i;j<n;j++){
            mainres=min(mainres,pors(i,j));
        }
    }
}

long long find_shortcut(int n_, std::vector<int> l, std::vector<int> d, int c_)
{
    n=n_;
    c=c_;
    all.push_back(0);
    alld[0]=d[0];
    l.push_back(0);
    for(long long i=1;i<n;i++){
        all.push_back(all.back()+l[i-1]);
        alld[i]=d[i];
    }
    for(long long i=0;i<n;i++){
        if(i!=0){
            mxa[i]=max(mxa[i-1]+l[i-1],alld[i]);
        }else{
            mxa[i]=alld[i];
        }
    }
    all[n]=all[n-1];
    for(long long i=n-1;i>=0;i--){
        mxb[i]=max(mxb[i+1]+l[i],alld[i]);
    }
    solve(0,n-1);
    return mainres;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 4440 KB n = 4, 80 is a correct answer
2 Correct 1 ms 4440 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 4548 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 4440 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 4540 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 4552 KB n = 3, 3000000000 is a correct answer
14 Correct 1 ms 4444 KB n = 4, 3000000001 is a correct answer
15 Correct 1 ms 4444 KB n = 4, 4000000000 is a correct answer
16 Correct 1 ms 4440 KB n = 5, 4000000000 is a correct answer
17 Incorrect 1 ms 4548 KB n = 10, incorrect answer: jury 1000000343 vs contestant 1000000346
18 Halted 0 ms 0 KB -