on
[백준 1967번] 트리의 지름
[백준 1967번] 트리의 지름
#include < iostream >
#include < string >
#include < algorithm >
#include < queue >
#include < vector >
#include < stack >
#include < utility >
#include < climits >
#include < deque >
using namespace std ;
int n;
vector < pair < int , int > > adj[ 10001 ];
int dist[ 10001 ];
int res = 0 ;
void bfs() {
for ( int s = 1 ; s < = n; s + + ) {
fill(dist, dist + 10001 , - 1 );
queue < int > Q;
Q.push(s);
dist[s] = 0 ;
while ( ! Q.empty()) {
int u = Q. front (); Q. pop ();
res = max(res, dist[u]);
for ( auto & v : adj[u]) {
if (dist[v.first] ! = - 1 ) continue ;
dist[v.first] = dist[u] + v.second;
Q.push(v.first);
}
}
}
}
int main( void ) {
ios::sync_with_stdio( false );
cin .tie(nullptr);
cin > > n;
for ( int i = 0 ; i < n - 1 ; i + + ) {
int u, v, c;
cin > > u > > v > > c;
adj[u]. push_back ({ v, c });
adj[v]. push_back ({ u ,c });
}
bfs();
cout < < res;
return 0 ;
}
from http://seokjin2.tistory.com/83 by ccl(A) rewrite - 2021-12-13 09:01:09