91分 求调 帮调关注
查看原帖
91分 求调 帮调关注
1272630
Norton_genitals楼主2025/1/21 17:43
#include<bits/stdc++.h>
using namespace std;
int n,c1,c2,mx,ss,kk=1;
int s[200],k[200],a[200];//0:left 1:right
int ans;
set<int>my;
int main(){
	cin>>n;
	s[1]=1;a[1]=1;k[c1]=1;
	for(int i=1;i<=n-1;i++){
		cin>>c1>>c2;
		s[c2]=s[c1]+1;
		a[c2]=c1;
		k[s[c2]]++;
		kk=max(kk,k[s[c2]]);
		ss=max(ss,s[c2]);	
	}
	cin>>c1>>c2;
	if(n==1){
		cout<<1<<endl<<1<<endl<<0;
		return 0;
	}
	int now=c1;
	while(1){
		my.insert(now);
		now=a[now];
		if(now==1||now==0){
			my.insert(now);
			break;
		}
	}
	now=c2;
	while(1){
		if(my.find(now)!=my.end()){
			ans=2*abs(s[now]-s[c1])+abs(s[now]-s[c2]);
			break;
		}
		now=a[now];
	}
	cout<<ss<<endl;
	cout<<kk<<endl;
	cout<<ans;
	return 0;
}
2025/1/21 17:43
加载中...