0分RE,大佬请进
查看原帖
0分RE,大佬请进
964721
syDuck楼主2023/5/27 08:21
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
map<int,int> f;
vector<int> v[10];
int n,i,x,y,h,ma;
void dg(int now,int hp){
	if(v[now][0]==0&&v[now][1]==0) {
		ma=max(ma,hp);
		return ;
	}
	if(v[now][0]!=0) dg(v[now][0],hp+1);
	if(v[now][1]!=0) dg(v[now][1],hp+1);
}
int main(){
	scanf("%d",&n);
	for(i=1;i<=n;i++) f[i]=i;
	for(i=1;i<=n;i++){
		scanf("%d%d",&x,&y);
		v[i].push_back(x);
		v[i].push_back(y);
		f[x]=i;
		f[y]=i;
	}
	h=x;
	while(1){
		if(f[h]!=h) h=f[h];
		else break;
	}
	dg(h,1);
	printf("%d",ma);
    return 0;
}
2023/5/27 08:21
加载中...