이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dreaming.h"
#include<bits/stdc++.h>
using namespace std ;
const int NN = 1e5 + 5 ;
vector<pair<int , int > > adj[NN];
int cmp[2] , vis[NN] ;
long long mn[2];
int summ = 0 , vid ;
void dfs(int u , int id){
vis[u] = vid;
for(auto f : adj[u]){
if(vis[f.first] == vid)
continue ;
if(id + 1)mn[id] = min(mn[id] , max(1ll*summ , 1ll*cmp[id] - summ));
summ += f.second ;
dfs(f.first , id);
}
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
long long sum = 0 ;
mn[0] = mn[1] = 1e18 ;
for(int i = 0 ; i < M ; i ++){
sum += T[i] ;
adj[A[i]].push_back({B[i] , T[i]});
adj[B[i]].push_back({A[i] , T[i]});
}
vid++;
dfs(1 , -1);
cmp[0] = summ ;
cmp[1] = sum - cmp[0];
summ = 0 ;
vid ++ ;
int d = 0 ;
for(int i = 0 ; i < N ; i++){
if(vis[i] != vid)dfs(i , d++) , summ = 0;
}
return mn[0] + mn[1] + L ;
}
# | 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... |