이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dreaming.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 11;
vector<pair<int, int>> G[MAXN];
int D[3][MAXN];
vector<int> vis;
void dfs(int sl, int v, int pa = -1){
vis.push_back(v);
for(auto [u, w] : G[v]){
if(u != pa){
D[sl][u] = D[sl][v] + w; dfs(sl, u, v);
}
}
return;
}
int max_dis(int sl, int v, bool clear){
int u = -1;
D[sl][v] = 0; dfs(sl, v);
for(auto i : vis){
if(u == -1 || D[sl][i] > D[sl][u]){
u = i;
}
}
if(clear) vis.clear();
return u;
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
for(int i = 0; i < M; i++) G[A[i]].push_back({B[i], T[i]}), G[B[i]].push_back({A[i], T[i]});
const int INF = 1 << 30;
fill(D[0], D[0] + N, INF);
fill(D[1], D[1] + N, INF);
fill(D[2], D[2] + N, INF);
vector<int> rads;
int ans = 0;
for(int i = 0; i < N; i++){
if(D[0][i] == INF){
int p = max_dis(0, i, 1);
int q = max_dis(1, p, 1);
max_dis(2, q, 0);
int rad = INF;
for(auto j : vis){
rad = min(rad, max(D[1][j], D[2][j]));
ans = max(ans, max(D[1][j], D[2][j]));
}
rads.push_back(rad);
vis.clear();
}
}
sort(rads.begin(), rads.end(), [](int x, int y){
return x > y;
});
if(rads.size() == 1) ans = max(ans, rads[0]);
else if(rads.size() == 2) ans = max(ans, rads[0] + rads[1] + L);
else ans = max(ans, max(rads[0] + rads[1] + L, rads[1] + rads[2] + L * 2));
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
dreaming.cpp: In function 'void dfs(int, int, int)':
dreaming.cpp:12:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
12 | for(auto [u, w] : G[v]){
| ^
# | 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... |