P1395
#include <iostream>
#include <vector>
using namespace std;
vector<int> a[50025];
bool v[50025];
int ans=1e9,ans_i=0;
int d=0;
int dfs(int n){
v[n]=1;
int m=0,sum=0;
for(auto i:a[n]){
if(!v[i]){
int t=dfs(i);
m=max(t,m);
sum+=t;
}
}
sum++;
m=max(m,d-m);
if(m<ans){
ans_i=n;
ans=m;
}
return sum;
}
int main(){
int n;
cin>>n;
d=n;
for(int i=0;i<n-1;i++){
int x,y;
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
dfs(1);
cout<<ans_i<<" "<<ans<<endl;
return 0;
}
第二个输出肯定错了
但第一个输出怎么调啊
能不能帮我改下