#include<bits/stdc++.h>
using namespace std;
int n,u,v,x[100001],y[100001],a,b,ans=0;
vector<int>g[100001];
bool vis[100001];
void dfs(bool f,int t){
for(int i:g[t]){
if(vis[i])continue;
if(f)y[i]=y[t]+1;
else x[i]=x[t]+1;
vis[i]=1;
dfs(f,i);
}
}int main(){
cin>>n>>u>>v;
for(int i=1;i<n;i++){
cin>>a>>b;
g[a].push_back(b);
g[b].push_back(a);
}vis[u]=1;
x[u]=y[v]=0;
dfs(0,u);
memset(vis,0,sizeof(vis));
vis[u]=1;
dfs(1,v);
for(int i=1;i<=n;i++)if(y[i]<x[i])ans=max(ans,x[i]-1);
cout<<ans;
return 0;
}
疑似dfs
出了问题