有没有大佬看一看我的程序哪里错了,只对了两个点 本人pascal蒟蒻
const maxn=100002;
var
n,k,tot,ans,i,x,y:longint;
too,ne:array[1..maxn] of longint;
head,de,smin:array[1..maxn] of longint;
function min(x,y:longint):longint;
begin
if x<y then exit(x);
exit(y);
end;
procedure add(x,y:longint);
begin
inc(tot);
too[tot]:=y;
ne[tot]:=head[x];
head[x]:=tot;
end;
procedure dfs(x,fa:longint);
var i,y,minn:longint;
begin
de[x]:=de[fa]+1;
minn:=de[x];
i:=head[x];
while i<>0 do
begin
y:=too[i];
if y=fa then
begin
i:=ne[i];
continue;
end;
dfs(y,x);
if minn=de[x] then minn:=smin[y]
else minn:=min(minn,smin[y]);
i:=ne[i];
end;
smin[x]:=minn;
end;
procedure dfs2(x,fa:longint);
var i,y:longint;
begin
if smin[x]<=de[x]*2 then
begin
inc(ans);
exit;
end;
i:=head[x];
while i<>0 do
begin
y:=too[i];
if y=fa then
begin
i:=ne[i];
continue;
end;
dfs2(y,x);
i:=ne[i];
end;
end;
begin
readln(n,k);
for i:=1 to n-1 do
begin
readln(x,y);
add(x,y);
add(y,x);
end;
de[k]:=-1;
dfs(k,k);
dfs2(k,k);
writeln(ans);
end.