package Ġcode forces . global round 1 6 Ċ Ċ private Ġfun Ġsolve () Ġ{ Ċ ĉ val Ġn Ġ= Ġread Int () Ċ ĉ val Ġne i Ġ= ĠList ( n ) Ġ{ Ġmutable ListOf < Int >() Ġ} Ċ ĉ repeat ( n Ġ- Ġ 1 ) Ġ{ Ċĉ ĉ val Ġ( v , Ġu ) Ġ= Ġread Ints (). map Ġ{ Ġit Ġ- Ġ 1 Ġ} Ċĉ ĉ ne i [ v ]. add ( u ) Ċĉ ĉ ne i [ u ]. add ( v ) Ċ ĉ } Ċ ĉ val Ġk ids Ġ= ĠInt Array ( n ) Ċ ĉ val Ġis Leaf Ġ= ĠBoolean Array ( n ) Ċ ĉ val Ġis B ud Ġ= ĠBoolean Array ( n ) Ċ ĉ var Ġans Ġ= Ġ 0 Ċ ĉ fun Ġdfs ( v : ĠInt , Ġp : ĠInt Ġ= Ġ- 1 ) Ġ{ Ċĉ ĉ var Ġnon Le aves Ġ= Ġfalse Ċĉ ĉ for Ġ( u Ġin Ġne i [ v ]) Ġ{ Ċĉĉ ĉ if Ġ( u Ġ== Ġp ) Ġcontinue Ċĉĉ ĉ dfs ( u , Ġv ) Ċĉĉ ĉ if Ġ( is B ud [ u ]) Ġcontinue Ċĉĉ ĉ k ids [ v ] ++ Ċĉĉ ĉ if Ġ(! is Leaf [ u ]) Ġnon Le aves Ġ= Ġtrue Ċĉ ĉ } Ċĉ ĉ is Leaf [ v ] Ġ= Ġ( p Ġ!= Ġ- 1 Ġ&& Ġk ids [ v ] Ġ== Ġ 0 ) Ċĉ ĉ is B ud [ v ] Ġ= Ġ( p Ġ!= Ġ- 1 Ġ&& Ġ! non Le aves Ġ&& Ġ! is Leaf [ v ]) Ċĉ ĉ if Ġ( is B ud [ v ]) Ġans -- Ċĉ ĉ if Ġ( is Leaf [ v ]) Ġans ++ Ċĉ ĉ if Ġ( v Ġ== Ġ 0 Ġ&& Ġk ids [ v ] Ġ== Ġ 0 ) Ġans ++ Ċ ĉ } Ċ ĉ dfs ( 0 ) Ċ ĉ println ( ans ) Ċ } Ċ Ċ fun Ġmain () Ġ= Ġrepeat ( readInt ()) Ġ{ Ġsolve () Ġ} Ċ Ċ private Ġfun Ġread Ln () Ġ= Ġread Line () !! Ċ private Ġfun Ġread Int () Ġ= Ġread Ln (). toInt () Ċ private Ġfun Ġread Strings () Ġ= Ġread Ln (). split (" Ġ") Ċ private Ġfun Ġread Ints () Ġ= Ġread Strings (). map Ġ{ Ġit . toInt () Ġ} Ċ