#include<bits/stdc++.h>
using namespace std;
int u,v;
struct son {
int father_qz,left_son_cnrh,right_son_lsh;
} a[105];
int num[105],walk;
int ans;
void front_tree_walk(int root,int death){
ans = max(ans,death);
num[death]++;
if(root == u){
walk = walk+(death-1)*2;
}else if(root == v){
walk = walk+death-1;
}
if(a[root].left_son_cnrh){
front_tree_walk(a[root].left_son_cnrh,death+1);
}
if(a[root].right_son_lsh){
front_tree_walk(a[root].right_son_lsh,death+1);
}
}
int main() {
int n;
cin>>n;
for(int i = 1; i<n; i++) {
int u,v;
cin>>u>>v;
a[v].father_qz = u;
if(!a[u].left_son_cnrh){
a[u].left_son_cnrh = v;
}else{
a[u].right_son_lsh = v;
}
}
cin>>u>>v;
front_tree_walk(1,1);
int b;
b = 0;
for(int i = 1;i<=ans;i++){
b = max(b,num[i]);
}
cout<<ans<<"\n"<<b<<"\n"<<walk;
return 0;
}
不知道哪里错了,提交记录
大佬求调!
谢谢!