#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 7;
int head[maxn];
int n , k;
struct edge{
int to ,nxt;
}e[maxn << 1] ;
int tot;
void add_edge(int u , int v){
e[tot].to = v;
e[tot].nxt = head[u];
head[u] = tot++;
}
void init(int u , int v){
add_edge(u,v);
add_edge(v,u);
}
int dep[maxn];
int ans;
void dfs(int x,int fa){
ans = max(ans,dep[x]);
for(int i = head[x]; ~i ; i = e[i].nxt){
int to = e[i].to;
if(to == fa) continue;
dep[to] = dep[x] + 1;
dfs(to,x);
}
}
int main(){
memset(head,-1,sizeof(head));
//int n , k;
cin >> n >> k;
for(int i = 1 ; i <= n - 1 ; i++){
int u , v;
cin >> u >> v;
init(u,v);
}
dep[k] = 1;
dfs(k,-1);
cout << ans << endl;
return 0;
}
GYM 101875 2018 USP-ICMC L
最新推荐文章于 2019-07-29 11:31:26 发布