kar7mp5
[Baekjoon] 1967 트리의 지름 (C++ 풀이) 본문
728x90
https://www.acmicpc.net/problem/1967
#include <cstring>
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
using pii = pair<int, int>;
using vpii = vector<pii>;
#define MAX 10'001
int N;
vpii MAP[MAX];
bool visited[MAX];
int max_dist = 0;
int fst_max_node;
void dfs(int start, int dist) {
if (visited[start])
return;
if (max_dist < dist) {
max_dist = dist;
fst_max_node = start;
}
visited[start] = true;
for (int j = 0; j < MAP[start].size(); j++) {
int next = MAP[start][j].first;
int next_dist = MAP[start][j].second;
dfs(next, next_dist + dist);
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> N;
N--;
int u, v, l;
while (N--) {
cin >> u >> v >> l;
MAP[u].push_back({v, l});
MAP[v].push_back({u, l});
}
dfs(1, 0);
memset(visited, 0, sizeof(visited));
max_dist = 0;
dfs(fst_max_node, 0);
cout << max_dist;
return 0;
}
728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
[Baekjoon] 1377 버블 정렬 (C++ 풀이) (0) | 2024.06.06 |
---|---|
[Baekjoon] 9935 문자열 폭발 (Python 풀이) (0) | 2024.06.06 |
[Baekjoon] 1167 트리의 지름 (C++ 풀이) (0) | 2024.06.06 |
[Baekjoon] 16953 A --> B (C++ 풀이) (0) | 2024.06.05 |