#include "shortcut.h"
#include <bits/stdc++.h>
using namespace std;
long long find_shortcut(int n, vector<int> lens, vector<int> d, int c){
long long ans = 2e18;
for(int l = 0;l<n;l++){
for(int r = l+1;r<n;r++){
//len inds from l -> r-1
long long dist = d[0];
long long maxima = dist;
for(int i = 0;i<n-1;i++){
dist+=lens[i];
if(i==r-1){
priority_queue<array<long long,2>,vector<array<long long,2>>, greater<array<long long,2>>>pq;
pq.push({0,r});
pq.push({c,l});
long long di[n];
fill(di,di+n,2e18);
while(!pq.empty()){
array<long long,2> a = pq.top();
pq.pop();
if(di[a[1]]<=a[0])
continue;
di[a[1]]=a[0];
if(a[1]){
pq.push({a[0]+lens[a[1]-1],a[1]-1});
}
if(a[1]<n-1){
pq.push({a[0]+lens[a[1]],a[1]+1});
}
}
for(int i = 0;i<n;i++){
if(i==r)
continue;
di[i]+=d[i];
}
dist=*max_element(di,di+r);
}
maxima=max(maxima,dist+d[i+1]);
dist=max(dist,(long long)d[i+1]);
}
ans=min(ans,maxima);
}
}
return ans;
}
Compilation message (stderr)
shortcut.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
shortcut_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | 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... |