Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <cstring>
- using namespace std;
- int n;
- vector<pair<int, int>> v[10001];
- bool vi[10001];
- int mp1=0,mp2 = 0;
- void chk1(int idx,int pidx) {
- vi[idx] = true;
- for (int i = 0; i < v[idx].size(); i++) {
- if (!vi[v[idx][i].first]) {
- chk1(v[idx][i].first,v[idx][i].second+pidx);
- if (v[idx][i].second + pidx > mp1) {
- mp1 = v[idx][i].second + pidx;
- mp2 = v[idx][i].first;
- }
- }
- }
- }
- int main() {
- scanf("%d", &n);
- int max_dep = 0;
- for (int i = 0; i < n - 1; i++) {
- int a, b, c;
- scanf("%d%d%d", &a, &b, &c);
- v[a].push_back(make_pair(b, c));
- v[b].push_back(make_pair(a, c));
- }
- chk1(1, 0);
- memset(vi, 0, sizeof(vi));
- chk1(mp2, 0);
- printf("%d\n", mp1);
- return 0;
- }
Add Comment
Please, Sign In to add comment