V8ORG - Tổ chức đối lập
Tác giả: khuc_tuan
Ngôn ngữ: Pascal
type
PNode = ^Node;
Node = record
i : integer;
next : PNode;
end;
var
n, k, res : integer;
ke : array[1..10000] of PNode;
function dfs(i : integer) : integer;
var p : PNode;
sc, j : integer;
begin
p := ke[i];
sc := 1;
while p<>nil do begin
j := p^.i;
sc := sc + dfs(j);
p := p^.next;
end;
if sc>=k then begin
inc(res);
sc := 0;
end;
dfs := sc;
end;
var
p : PNode;
i,x : integer;
begin
read( k, n);
for i:=2 to n do begin
read(x);
new(p);
p^.i := i;
p^.next := ke[x];
ke[x] := p;
end;
res := 0;
dfs(1);
writeln( res);
end.