代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int f[100010],s[100010],d[100010];
int n,t,sum=0;
vector<int>a[100010];
void dfs(int u,int fa){
s[u]=1;
f[u]=0;
for(int i=0;i<a[u].size();i++){
int v=a[u][i];
if(v==fa) continue;
dfs(v,u);
s[u]+=s[v];
f[u]=max(f[u],s[v]);
f[u]=max(f[u],n-s[u]);
if(f[u]<f[t]||(f[u]==f[t]&&u<t)){
t=u;
}
}
}
void bfs(){
queue<int>q;
q.push(t);
while(!q.empty()){
auto u=q.front();
q.pop();
for(int i=0;i<a[u].size();i++){
int v=a[u][i];
if(d[v]>0&&v==t) continue;
d[v]=d[u]+1;
sum+=d[v];
q.push(v);
}
}
}
signed main(){
cin>>n;
for(int i=1;i<n;i++){
int x,y;
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
t=0;
f[0]=1e18;
dfs(1,0);
bfs();
cout<<t<<" "<<sum<<endl;
return 0;
}