有没有哪位可以帮忙看一下
第二个点MLE
#include <bits/stdc++.h>
using namespace std;
int a[1000010],b[100010];
int work(int x){
if(x==1) b[x]=1;
if(b[x]!=0) return b[x];
b[x]=work(a[x])+1;
return b[x];
}
int main(){
int n,ans=0;
cin >>n;
for(int i=1;i<=n;i++){
int x,y;
cin >>x>>y;
if(x==0&&y==0){
ans=max(work(i),ans);
continue;
}
if(x!=0) a[x]=i;
if(y!=0) a[y]=i;
}
cout <<ans;
return 0;
}