#include<cstdio>
int n,ans=0,l[100005],r[100005],h[100005];
bool f[100005];
void dfs(int p){
if(!p) return ;
if(!l[p]&&!r[p]){
ans++,h[p]=f[p]=1;
return ;
}
dfs(l[p]);
dfs(r[p]);
f[p]=bool(f[l[p]]&&h[l[p]]==h[r[p]]);
h[p]=(h[l[p]]+1)*f[p];
ans+=f[p];
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",l+i);
scanf("%d",r+i);
}
dfs(1);
printf("%d",ans);
}
总结:scanf,printf,cstdio,去using namespace std;
能用boor代替判断就不用判断,能开int就开int