#include "shortcut.h"
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n;
vector<vector<pair<int,ll>>> g;
pair<int,ll> djk(int s){
//cout << s << endl;
priority_queue<pair<ll,int>> pq;
vector<ll> d(2*n, -1ll);
pq.push({0, s});
while (!pq.empty()){
int cur = pq.top().second;
ll dist = -pq.top().first;
pq.pop();
if (d[cur] != -1) continue;
//cout << cur << " " << dist << endl;
d[cur] = dist;
for (auto [next, d2] : g[cur]) pq.push({-(dist+d2), next});
}
pair<int,ll> res = {s, 0};
for (int i=0; i<2*n; i++){
if (d[i] > res.second) res = {i, d[i]};
}
//cout << res.first << " " << res.second << endl;
return res;
}
ll calc(){
ll res = 0;
for (int i=0; i<2*n; i++) res = max(res, djk(i).second);
return res;
//return djk(djk(djk(djk(0).first).first).first).second;
}
ll find_shortcut(int n, vector<int> l, vector<int> d, int c){
::n = n;
g.resize(2*n);
for (int i=0; i<n; i++){
g[i].push_back({i+n, d[i]});
g[i+n].push_back({i, d[i]});
if (i == n-1) continue;
g[i].push_back({i+1, l[i]});
g[i+1].push_back({i, l[i]});
}
ll bsf = (1ll<<50);
for (int i=0; i<n; i++){
for (int j=i+1; j<n; j++){
g[i].push_back({j, c});
g[j].push_back({i, c});
bsf = min(bsf, calc());
g[i].pop_back();
g[j].pop_back();
//cout << i << " " << j << " " << bsf << endl;
}
}
return bsf;
}
컴파일 시 표준 에러 (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... |