이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF = 1e18;
int n;
vector<ll> x, d;
ll c;
ll max_dist(int p, int a, int b){
ll res = 0;
for(int q = 0; q < n; q++){
if(p == q) continue;
int i = min(p, q), j = max(p, q);
ll no = x[j]-x[i];
ll use = abs(x[i]-x[a])+c+abs(x[j]-x[b]);
ll dis = min(no, use)+d[i]+d[j];
res = max(res, dis);
}
return res;
}
ll find_shortcut(int n_, vector<int> len, vector<int> d_, int c_) {
n = n_;
for(int i = 0; i < n; i++) d.push_back(d_[i]);
c = c_;
x.resize(n);
x[0] = 0;
for(int i = 0; i < n-1; i++) x[i+1] = x[i]+len[i];
ll ans = INF;
for(int a = 0; a < n; a++){
for(int b = a+1; b < n; b++){
ll dia = 0;
for(int p = 0; p < n; p++){
dia = max(dia, max_dist(p, a, b));
}
ans = min(ans, dia);
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |