Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define int long long
- #define pb push_back
- using namespace std;
- const int N = 3e5 + 10;
- vector<int> gr[N];
- //dist vert
- pair<int,int> diam(int v, int pr = -1, int d = 0) {
- int bg = v;
- for(auto it: gr[v]) {
- if(it == pr) continue;
- pair<int,int> tmp = diam(it, v);
- if(tmp.first > d) {
- bg = tmp.second;
- d = tmp.first;
- }
- }
- return {d + 1, bg};
- }
- main() {
- int n;
- cin >> n;
- for(int i = 1; i < n; i++) {
- int l, r;
- cin >> l >> r;
- gr[l].pb(r);
- gr[r].pb(l);
- }
- int l = diam(1).second;
- int d = diam(l).first - 1;
- cout << d * 3 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement