제출 #162571

#제출 시각아이디문제언어결과실행 시간메모리
162571brcodeShortcut (IOI16_shortcut)C++14
0 / 100
2 ms256 KiB
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 2e5+5;
long long pref[MAXN];
long long dist(long long x,long long y){
    if(x>y){
        swap(x,y);
    }
    if(x==y){
        return 0;
    }
    long long res = 0;
    if(x){
        res = pref[x-1];
    }
    return res+pref[y-1];
}
long long find_shortcut(int n, vector<int> l, vector<int> d, int c){
    pref[0] = l[0];
    for(long long i=1;i<n;i++){
        pref[i] = pref[i-1]+l[i];
    }
    long long ans = 0;
    for(long long i=0;i<n;i++){
        for(long long j=i+1;j<n;j++){
            long long tempans = 0;
            for(long long x=0;x<n;x++){

                for(long long y=x+1;y<n;y++){
                    long long hold = min(dist(x,y),min(dist(x,i)+c+dist(y,j),dist(x,j)+c+dist(y,i)));
                    tempans = max(tempans,hold+d[x]+d[y]);

                }
            }
            ans = max(ans,tempans);
        }
    }
    return ans;
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...