请问哪里错了,怎么修改,为什么输入之后没有输出,谢谢哈,祝您一帆风顺
#include<bits/stdc++.h>
using namespace std;
const int Inf=999999;
int n,d;
int v[Inf],h[Inf],nxt[Inf],tot;
int dis[Inf],book[Inf];
int ans;
//dfs用void
void add(int x,int y){
v[++tot]=y;
nxt[tot]=h[x];
h[x]=tot;
return;
}
void dfs(int x){
if(dis[x]<=d)ans++;
else{
for(int i=h[x];i;i=nxt[i]){
if(book[i]==0){
dis[v[i]]=dis[x]+1;
book[v[i]]=1;
dfs(v[i]);
book[v[i]]=0;
}
}
}
return;
}
int main(){
cin>>n>>d;
int a,b;
cin>>a>>b;
for(int i=1;i<=n-1;i++){
cin>>a>>b;
add(a,b);
add(b,a);
}
memset(dis,0x3f,sizeof dis);
dfs(1);
cout<<ans;
return 0;
}