Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 1e5;
- vector <int> g[N + 10];
- bool vs[N + 10];
- int ans;
- int dfs(int u, int p){
- vs[u] = true;
- vector <int> nxt;
- for(auto v: g[u]){
- if(v != p) nxt.push_back(dfs(v, u));
- }
- sort(nxt.begin(), nxt.end(), greater <int> ());
- int mx = 0, sz = nxt.size();
- for(int i=0;i<sz;i++)
- mx = max(mx, nxt[i] + i + 1);
- return mx;
- }
- int main(){
- int n, st;
- scanf("%d %d", &n, &st);
- for(int i=1;i<=n-1;i++){
- int u, v;
- scanf("%d %d", &u, &v);
- g[u].push_back(v);
- g[v].push_back(u);
- }
- cout << dfs(st, -1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement