This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "shortcut.h"
using namespace std;
#define int long long
int N, C;
vector<signed> L, D;
int find_shortcut(signed _N, std::vector<signed> _l, std::vector<signed> _d, signed _C){
L = _l, D = _d;
N = _N;
C = _C;
vector<pair<int,int>> dp (N);
pair<int,int> best = {0, -1};
for(int i = N - 1; i >= 0; i--){
dp[i] = best;
dp[i].first += D[i];
if(i == 0) break;
if(D[i] >= best.first){
best = {D[i], i};
}
best.first += L[i-1];
}
best = {0,-1};
int idx = -1;
for(int i = 0; i < N; i++){
if(dp[i] > best) best = dp[i], idx = i;
}
vector<int> dist (N);
for(int i = 1; i < N; i++){
dist[i] = dist[i-1] + L[i-1];
}
int a = idx, b = best.second;
//cout << a << " " << b << endl;
//cout << best.first << endl;
int res = LLONG_MAX;
for(int i = 0; i < N; i++){
for(int j = b; j <= b; j++){
int mx = 0;
for(int k = 0; k < N; k++){
for(int l = k + 1; l < N; l++){
int d;
d = D[k] + abs(dist[k] - dist[i]) + C + abs(dist[j] - dist[l]) + D[l];
d = min(d, D[k] + D[l] + abs(dist[k] - dist[l]));
d = min(d, D[k] + abs(dist[k] - dist[j]) + C + abs(dist[i] - dist[l]) + D[l]);
mx = max(d, mx);
}
}
res = min(res, mx);
}
}
return res;
}
Compilation message (stderr)
shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:31:6: warning: unused variable 'a' [-Wunused-variable]
31 | int a = idx, b = best.second;
| ^
# | 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... |