@ file : Suppress ( ĊĠĠĠ Ġ" UNUSED _ VARIABLE ", Ġ" Member Visibility Can Be Private ", Ġ" UNUSED _ PARAMETER ", Ġ" unused ", ĊĠĠĠ Ġ" Replace Manual Range With Indices Calls ", Ġ" Replace Size Zero Check With IsEmpty " Ċ ) Ċ Ċ import Ġalgorithms . Small Par sim ony Nearest Neighbors Of Tree Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠSee Ġalso : Ċ Ġ* ĠSte pi k : Ġhttps :// step ik . org / lesson / 2 4 0 3 4 3 / step / 6 ? unit = 2 1 2 6 8 9 Ċ Ġ* ĠRos al ind : Ġno Ġequivalent Ġproblem Ċ Ġ* Ċ Ġ* Ġ" E volution ary ĠTree ĠRe construction Ġin Ġthe ĠModern ĠE ra " Ċ Ġ* ĠY outube : Ġhttps :// www . youtube . com / watch ? v = A 4 8 MB l I yl 5 c Ċ Ġ* Ċ Ġ* ĠUses Ġthe ĠKotlin ĠMult ik Ġmult id imension al Ġarray Ġlibrary Ċ Ġ* Ġ@ link : Ġhttps :// github . com / Kotlin / mult ik Ċ Ġ* Ġ@ link : Ġhttps :// blog . jetbrains . com / kotlin / 2 0 2 1 / 0 2 / mult ik - mult id imension al - arrays - in - kotlin / Ċ Ġ*/ Ċ internal Ġclass ĠS 0 7 C 1 0 P 0 6 Small Par sim ony Nearest Neighbors Of Tree Test Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġnn : ĠSmall Par sim ony Nearest Neighbors Of Tree ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġnn Ġ= ĠSmall Par sim ony Nearest Neighbors Of Tree () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġa Ġpractice Ġtest Ġwhere Ġone Ġinternal Ġnode Ġ( 7 ) Ġonly Ġhas Ġone Ġleaf ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Nearest ĠNe ighbor ĠOf ĠTree Ġpractice Ġtest ") ĊĠĠĠ Ġfun Ġnearest Neighbor Of Tree Pract ice Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Input Ġ= Ġ""" Ċ 5 Ġ 7 Ċ 0 -> 5 Ċ 5 -> 0 Ċ 1 -> 5 Ċ 5 -> 1 Ċ 2 -> 6 Ċ 6 -> 2 Ċ 3 -> 6 Ċ 6 -> 3 Ċ 4 -> 7 Ċ 7 -> 4 Ċ 5 -> 7 Ċ 7 -> 5 Ċ 6 -> 7 Ċ 7 -> 6 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġval Ġedge Ġ= Ġsample Input . remove First (). split (" Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġedge [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġedge [ 1 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ: ĠMutable Map < Int , ĠMutable List < Int >> Ġ= Ġhash Map Of () ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġsample Input ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconn Ġ= Ġs . split (" -> ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġconn [ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġconn [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . containsKey ( from )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] !!. add ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] Ġ= Ġmutable ListOf ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnn . two Nearest Neighbors ( a , Ġb , Ġm ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Output String Ġ= Ġ""" Ċ 0 -> 5 Ċ 1 -> 7 Ċ 2 -> 6 Ċ 3 -> 6 Ċ 4 -> 5 Ċ 5 -> 0 Ċ 5 -> 4 Ċ 5 -> 7 Ċ 6 -> 2 Ċ 6 -> 3 Ċ 6 -> 7 Ċ 7 -> 1 Ċ 7 -> 5 Ċ 7 -> 6 ĊĊ 0 -> 5 Ċ 1 -> 7 Ċ 2 -> 6 Ċ 3 -> 6 Ċ 4 -> 7 Ċ 5 -> 0 Ċ 5 -> 6 Ċ 5 -> 7 Ċ 6 -> 2 Ċ 6 -> 3 Ċ 6 -> 5 Ċ 7 -> 1 Ċ 7 -> 4 Ċ 7 -> 5 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġ// Ġform Ġthe Ġtwo Ġexpected Ġresult Ġlists ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcurr List Ġ= Ġexpected List 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġexpected Output String . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġexpected Output String [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . length Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List Ġ= Ġexpected List 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List . add ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow Ġmake Ġtwo Ġlists Ġfrom Ġthe Ġresults ĊĠĠĠĠĠĠĠ Ġval Ġresults List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġresults List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Output Ġ= Ġresults List 1 ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Input Ġ= Ġresult [ 0 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġ 0 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġcur Decode Input . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( to Ġin Ġcur Decode Input [ k ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output . add ("$ k ->$ to ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Input Ġ= Ġresult [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output Ġ= Ġresults List 2 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 1 . sorted (). join ToString ("\ n ")) Ċ // ĠĠĠĠĠĠĠ Ġprintln ("") Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 2 . sorted (). join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 1 . sorted (), Ġresults List 1 . sorted ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 2 . sorted (), Ġresults List 2 . sorted ()) ĊĊĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Nearest ĠNe ighbor ĠOf ĠTree Ġsample Ġtest ") ĊĠĠĠ Ġfun Ġnearest Neighbor Of Tree Sample Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Input Ġ= Ġ""" Ċ 5 Ġ 4 Ċ 0 -> 4 Ċ 4 -> 0 Ċ 1 -> 4 Ċ 4 -> 1 Ċ 2 -> 5 Ċ 5 -> 2 Ċ 3 -> 5 Ċ 5 -> 3 Ċ 4 -> 5 Ċ 5 -> 4 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġval Ġedge Ġ= Ġsample Input . remove First (). split (" Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġedge [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġedge [ 1 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ: ĠMutable Map < Int , ĠMutable List < Int >> Ġ= Ġhash Map Of () ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġsample Input ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconn Ġ= Ġs . split (" -> ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġconn [ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġconn [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . containsKey ( from )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] !!. add ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] Ġ= Ġmutable ListOf ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnn . two Nearest Neighbors ( a , Ġb , Ġm ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Output String Ġ= Ġ""" Ċ 1 -> 4 Ċ 0 -> 5 Ċ 3 -> 4 Ċ 2 -> 5 Ċ 5 -> 2 Ċ 5 -> 4 Ċ 5 -> 0 Ċ 4 -> 1 Ċ 4 -> 5 Ċ 4 -> 3 ĊĊ 1 -> 5 Ċ 0 -> 4 Ċ 3 -> 4 Ċ 2 -> 5 Ċ 5 -> 2 Ċ 5 -> 4 Ċ 5 -> 1 Ċ 4 -> 0 Ċ 4 -> 5 Ċ 4 -> 3 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġ// Ġform Ġthe Ġtwo Ġexpected Ġresult Ġlists ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcurr List Ġ= Ġexpected List 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġexpected Output String . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġexpected Output String [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . length Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List Ġ= Ġexpected List 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List . add ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow Ġmake Ġtwo Ġlists Ġfrom Ġthe Ġresults ĊĠĠĠĠĠĠĠ Ġval Ġresults List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġresults List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Output Ġ= Ġresults List 1 ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Input Ġ= Ġresult [ 0 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġ 0 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġcur Decode Input . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( to Ġin Ġcur Decode Input [ k ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output . add ("$ k ->$ to ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Input Ġ= Ġresult [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output Ġ= Ġresults List 2 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 1 . sorted (). join ToString ("\ n ")) Ċ // ĠĠĠĠĠĠĠ Ġprintln ("") Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 2 . sorted (). join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 1 . sorted (), Ġresults List 1 . sorted ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 2 . sorted (), Ġresults List 2 . sorted ()) ĊĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Nearest ĠNe ighbor ĠOf ĠTree Ġextra Ġdataset Ġtest ") ĊĠĠĠ Ġfun Ġnearest Neighbor Of Tree Extra Dataset Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Input Ġ= Ġ""" Ċ 5 1 Ġ 5 8 Ċ 0 -> 3 2 Ċ 3 2 -> 0 Ċ 1 -> 3 2 Ċ 3 2 -> 1 Ċ 2 -> 3 3 Ċ 3 3 -> 2 Ċ 3 -> 3 3 Ċ 3 3 -> 3 Ċ 4 -> 3 4 Ċ 3 4 -> 4 Ċ 5 -> 3 4 Ċ 3 4 -> 5 Ċ 6 -> 3 5 Ċ 3 5 -> 6 Ċ 7 -> 3 5 Ċ 3 5 -> 7 Ċ 8 -> 3 6 Ċ 3 6 -> 8 Ċ 9 -> 3 6 Ċ 3 6 -> 9 Ċ 1 0 -> 3 7 Ċ 3 7 -> 1 0 Ċ 1 1 -> 3 7 Ċ 3 7 -> 1 1 Ċ 1 2 -> 3 8 Ċ 3 8 -> 1 2 Ċ 1 3 -> 3 8 Ċ 3 8 -> 1 3 Ċ 1 4 -> 3 9 Ċ 3 9 -> 1 4 Ċ 1 5 -> 3 9 Ċ 3 9 -> 1 5 Ċ 1 6 -> 4 0 Ċ 4 0 -> 1 6 Ċ 1 7 -> 4 0 Ċ 4 0 -> 1 7 Ċ 1 8 -> 4 1 Ċ 4 1 -> 1 8 Ċ 1 9 -> 4 1 Ċ 4 1 -> 1 9 Ċ 2 0 -> 4 2 Ċ 4 2 -> 2 0 Ċ 2 1 -> 4 2 Ċ 4 2 -> 2 1 Ċ 2 2 -> 4 3 Ċ 4 3 -> 2 2 Ċ 2 3 -> 4 3 Ċ 4 3 -> 2 3 Ċ 2 4 -> 4 4 Ċ 4 4 -> 2 4 Ċ 2 5 -> 4 4 Ċ 4 4 -> 2 5 Ċ 2 6 -> 4 5 Ċ 4 5 -> 2 6 Ċ 2 7 -> 4 5 Ċ 4 5 -> 2 7 Ċ 2 8 -> 4 6 Ċ 4 6 -> 2 8 Ċ 2 9 -> 4 6 Ċ 4 6 -> 2 9 Ċ 3 0 -> 4 7 Ċ 4 7 -> 3 0 Ċ 3 1 -> 4 7 Ċ 4 7 -> 3 1 Ċ 4 0 -> 4 8 Ċ 4 8 -> 4 0 Ċ 3 6 -> 4 8 Ċ 4 8 -> 3 6 Ċ 3 4 -> 4 9 Ċ 4 9 -> 3 4 Ċ 3 5 -> 4 9 Ċ 4 9 -> 3 5 Ċ 3 2 -> 5 0 Ċ 5 0 -> 3 2 Ċ 4 3 -> 5 0 Ċ 5 0 -> 4 3 Ċ 4 7 -> 5 1 Ċ 5 1 -> 4 7 Ċ 3 3 -> 5 1 Ċ 5 1 -> 3 3 Ċ 3 8 -> 5 2 Ċ 5 2 -> 3 8 Ċ 4 5 -> 5 2 Ċ 5 2 -> 4 5 Ċ 3 9 -> 5 3 Ċ 5 3 -> 3 9 Ċ 4 6 -> 5 3 Ċ 5 3 -> 4 6 Ċ 4 9 -> 5 4 Ċ 5 4 -> 4 9 Ċ 5 2 -> 5 4 Ċ 5 4 -> 5 2 Ċ 3 7 -> 5 5 Ċ 5 5 -> 3 7 Ċ 4 4 -> 5 5 Ċ 5 5 -> 4 4 Ċ 4 1 -> 5 6 Ċ 5 6 -> 4 1 Ċ 5 4 -> 5 6 Ċ 5 6 -> 5 4 Ċ 5 0 -> 5 7 Ċ 5 7 -> 5 0 Ċ 4 8 -> 5 7 Ċ 5 7 -> 4 8 Ċ 5 6 -> 5 8 Ċ 5 8 -> 5 6 Ċ 5 1 -> 5 8 Ċ 5 8 -> 5 1 Ċ 4 2 -> 5 9 Ċ 5 9 -> 4 2 Ċ 5 8 -> 5 9 Ċ 5 9 -> 5 8 Ċ 5 7 -> 6 0 Ċ 6 0 -> 5 7 Ċ 5 3 -> 6 0 Ċ 6 0 -> 5 3 Ċ 5 5 -> 6 1 Ċ 6 1 -> 5 5 Ċ 5 9 -> 6 1 Ċ 6 1 -> 5 9 Ċ 6 0 -> 6 1 Ċ 6 1 -> 6 0 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġval Ġedge Ġ= Ġsample Input . remove First (). split (" Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġedge [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġedge [ 1 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ: ĠMutable Map < Int , ĠMutable List < Int >> Ġ= Ġhash Map Of () ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġsample Input ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconn Ġ= Ġs . split (" -> ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġconn [ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġconn [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . containsKey ( from )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] !!. add ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] Ġ= Ġmutable ListOf ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnn . two Nearest Neighbors ( a , Ġb , Ġm ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Output String Ġ= Ġ""" Ċ 5 6 -> 4 1 Ċ 5 6 -> 5 4 Ċ 5 6 -> 5 1 Ċ 5 4 -> 4 9 Ċ 5 4 -> 5 2 Ċ 5 4 -> 5 6 Ċ 2 8 -> 4 6 Ċ 4 8 -> 4 0 Ċ 4 8 -> 3 6 Ċ 4 8 -> 5 7 Ċ 2 9 -> 4 6 Ċ 6 0 -> 5 7 Ċ 6 0 -> 5 3 Ċ 6 0 -> 6 1 Ċ 6 1 -> 5 5 Ċ 6 1 -> 5 9 Ċ 6 1 -> 6 0 Ċ 4 9 -> 3 4 Ċ 4 9 -> 3 5 Ċ 4 9 -> 5 4 Ċ 5 2 -> 3 8 Ċ 5 2 -> 4 5 Ċ 5 2 -> 5 4 Ċ 5 3 -> 3 9 Ċ 5 3 -> 4 6 Ċ 5 3 -> 6 0 Ċ 2 4 -> 4 4 Ċ 2 5 -> 4 4 Ċ 2 6 -> 4 5 Ċ 2 7 -> 4 5 Ċ 2 0 -> 4 2 Ċ 2 1 -> 4 2 Ċ 2 2 -> 4 3 Ċ 2 3 -> 4 3 Ċ 4 6 -> 2 8 Ċ 4 6 -> 2 9 Ċ 4 6 -> 5 3 Ċ 4 7 -> 3 0 Ċ 4 7 -> 3 1 Ċ 4 7 -> 5 1 Ċ 4 4 -> 2 4 Ċ 4 4 -> 2 5 Ċ 4 4 -> 5 5 Ċ 4 5 -> 2 6 Ċ 4 5 -> 2 7 Ċ 4 5 -> 5 2 Ċ 4 2 -> 2 0 Ċ 4 2 -> 2 1 Ċ 4 2 -> 5 9 Ċ 4 3 -> 2 2 Ċ 4 3 -> 2 3 Ċ 4 3 -> 5 0 Ċ 4 0 -> 1 6 Ċ 4 0 -> 1 7 Ċ 4 0 -> 4 8 Ċ 4 1 -> 1 8 Ċ 4 1 -> 1 9 Ċ 4 1 -> 5 6 Ċ 1 -> 3 2 Ċ 0 -> 3 2 Ċ 3 -> 3 3 Ċ 2 -> 3 3 Ċ 5 -> 3 4 Ċ 4 -> 3 4 Ċ 7 -> 3 5 Ċ 6 -> 3 5 Ċ 9 -> 3 6 Ċ 8 -> 3 6 Ċ 5 1 -> 4 7 Ċ 5 1 -> 5 8 Ċ 5 1 -> 5 6 Ċ 3 9 -> 1 4 Ċ 3 9 -> 1 5 Ċ 3 9 -> 5 3 Ċ 3 8 -> 1 2 Ċ 3 8 -> 1 3 Ċ 3 8 -> 5 2 Ċ 5 9 -> 4 2 Ċ 5 9 -> 5 8 Ċ 5 9 -> 6 1 Ċ 5 8 -> 5 1 Ċ 5 8 -> 5 9 Ċ 5 8 -> 3 3 Ċ 1 1 -> 3 7 Ċ 1 0 -> 3 7 Ċ 1 3 -> 3 8 Ċ 1 2 -> 3 8 Ċ 1 5 -> 3 9 Ċ 1 4 -> 3 9 Ċ 1 7 -> 4 0 Ċ 1 6 -> 4 0 Ċ 3 3 -> 2 Ċ 3 3 -> 3 Ċ 3 3 -> 5 8 Ċ 3 2 -> 0 Ċ 3 2 -> 1 Ċ 3 2 -> 5 0 Ċ 3 1 -> 4 7 Ċ 3 0 -> 4 7 Ċ 3 7 -> 1 0 Ċ 3 7 -> 1 1 Ċ 3 7 -> 5 5 Ċ 3 6 -> 8 Ċ 3 6 -> 9 Ċ 3 6 -> 4 8 Ċ 3 5 -> 6 Ċ 3 5 -> 7 Ċ 3 5 -> 4 9 Ċ 3 4 -> 4 Ċ 3 4 -> 5 Ċ 3 4 -> 4 9 Ċ 1 9 -> 4 1 Ċ 5 5 -> 3 7 Ċ 5 5 -> 4 4 Ċ 5 5 -> 6 1 Ċ 1 8 -> 4 1 Ċ 5 7 -> 5 0 Ċ 5 7 -> 4 8 Ċ 5 7 -> 6 0 Ċ 5 0 -> 3 2 Ċ 5 0 -> 4 3 Ċ 5 0 -> 5 7 ĊĊ 5 6 -> 4 1 Ċ 5 6 -> 5 4 Ċ 5 6 -> 5 8 Ċ 5 4 -> 4 9 Ċ 5 4 -> 5 2 Ċ 5 4 -> 5 6 Ċ 2 8 -> 4 6 Ċ 4 8 -> 4 0 Ċ 4 8 -> 3 6 Ċ 4 8 -> 5 7 Ċ 2 9 -> 4 6 Ċ 6 0 -> 5 7 Ċ 6 0 -> 5 3 Ċ 6 0 -> 6 1 Ċ 6 1 -> 5 5 Ċ 6 1 -> 5 9 Ċ 6 1 -> 6 0 Ċ 4 9 -> 3 4 Ċ 4 9 -> 3 5 Ċ 4 9 -> 5 4 Ċ 5 2 -> 3 8 Ċ 5 2 -> 4 5 Ċ 5 2 -> 5 4 Ċ 5 3 -> 3 9 Ċ 5 3 -> 4 6 Ċ 5 3 -> 6 0 Ċ 2 4 -> 4 4 Ċ 2 5 -> 4 4 Ċ 2 6 -> 4 5 Ċ 2 7 -> 4 5 Ċ 2 0 -> 4 2 Ċ 2 1 -> 4 2 Ċ 2 2 -> 4 3 Ċ 2 3 -> 4 3 Ċ 4 6 -> 2 8 Ċ 4 6 -> 2 9 Ċ 4 6 -> 5 3 Ċ 4 7 -> 3 0 Ċ 4 7 -> 3 1 Ċ 4 7 -> 5 1 Ċ 4 4 -> 2 4 Ċ 4 4 -> 2 5 Ċ 4 4 -> 5 5 Ċ 4 5 -> 2 6 Ċ 4 5 -> 2 7 Ċ 4 5 -> 5 2 Ċ 4 2 -> 2 0 Ċ 4 2 -> 2 1 Ċ 4 2 -> 5 9 Ċ 4 3 -> 2 2 Ċ 4 3 -> 2 3 Ċ 4 3 -> 5 0 Ċ 4 0 -> 1 6 Ċ 4 0 -> 1 7 Ċ 4 0 -> 4 8 Ċ 4 1 -> 1 8 Ċ 4 1 -> 1 9 Ċ 4 1 -> 5 6 Ċ 1 -> 3 2 Ċ 0 -> 3 2 Ċ 3 -> 3 3 Ċ 2 -> 3 3 Ċ 5 -> 3 4 Ċ 4 -> 3 4 Ċ 7 -> 3 5 Ċ 6 -> 3 5 Ċ 9 -> 3 6 Ċ 8 -> 3 6 Ċ 5 1 -> 4 7 Ċ 5 1 -> 5 8 Ċ 5 1 -> 5 9 Ċ 3 9 -> 1 4 Ċ 3 9 -> 1 5 Ċ 3 9 -> 5 3 Ċ 3 8 -> 1 2 Ċ 3 8 -> 1 3 Ċ 3 8 -> 5 2 Ċ 5 9 -> 4 2 Ċ 5 9 -> 6 1 Ċ 5 9 -> 5 1 Ċ 5 8 -> 5 6 Ċ 5 8 -> 5 1 Ċ 5 8 -> 3 3 Ċ 1 1 -> 3 7 Ċ 1 0 -> 3 7 Ċ 1 3 -> 3 8 Ċ 1 2 -> 3 8 Ċ 1 5 -> 3 9 Ċ 1 4 -> 3 9 Ċ 1 7 -> 4 0 Ċ 1 6 -> 4 0 Ċ 3 3 -> 2 Ċ 3 3 -> 3 Ċ 3 3 -> 5 8 Ċ 3 2 -> 0 Ċ 3 2 -> 1 Ċ 3 2 -> 5 0 Ċ 3 1 -> 4 7 Ċ 3 0 -> 4 7 Ċ 3 7 -> 1 0 Ċ 3 7 -> 1 1 Ċ 3 7 -> 5 5 Ċ 3 6 -> 8 Ċ 3 6 -> 9 Ċ 3 6 -> 4 8 Ċ 3 5 -> 6 Ċ 3 5 -> 7 Ċ 3 5 -> 4 9 Ċ 3 4 -> 4 Ċ 3 4 -> 5 Ċ 3 4 -> 4 9 Ċ 1 9 -> 4 1 Ċ 5 5 -> 3 7 Ċ 5 5 -> 4 4 Ċ 5 5 -> 6 1 Ċ 1 8 -> 4 1 Ċ 5 7 -> 5 0 Ċ 5 7 -> 4 8 Ċ 5 7 -> 6 0 Ċ 5 0 -> 3 2 Ċ 5 0 -> 4 3 Ċ 5 0 -> 5 7 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġ// Ġform Ġthe Ġtwo Ġexpected Ġresult Ġlists ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcurr List Ġ= Ġexpected List 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġexpected Output String . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġexpected Output String [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . length Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List Ġ= Ġexpected List 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List . add ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow Ġmake Ġtwo Ġlists Ġfrom Ġthe Ġresults ĊĠĠĠĠĠĠĠ Ġval Ġresults List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġresults List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Output Ġ= Ġresults List 1 ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Input Ġ= Ġresult [ 0 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġ 0 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġcur Decode Input . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( to Ġin Ġcur Decode Input [ k ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output . add ("$ k ->$ to ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Input Ġ= Ġresult [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output Ġ= Ġresults List 2 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 1 . sorted (). join ToString ("\ n ")) Ċ // ĠĠĠĠĠĠĠ Ġprintln ("") Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 2 . sorted (). join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 1 . sorted (), Ġresults List 1 . sorted ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 2 . sorted (), Ġresults List 2 . sorted ()) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Nearest ĠNe ighbor ĠOf ĠTree Ġquiz Ġtest ") ĊĠĠĠ Ġfun Ġnearest Neighbor Of Tree Quiz Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsample Input Ġ= Ġ""" Ċ 4 6 Ġ 5 7 Ċ 0 -> 3 2 Ċ 3 2 -> 0 Ċ 1 -> 3 2 Ċ 3 2 -> 1 Ċ 2 -> 3 3 Ċ 3 3 -> 2 Ċ 3 -> 3 3 Ċ 3 3 -> 3 Ċ 4 -> 3 4 Ċ 3 4 -> 4 Ċ 5 -> 3 4 Ċ 3 4 -> 5 Ċ 6 -> 3 5 Ċ 3 5 -> 6 Ċ 7 -> 3 5 Ċ 3 5 -> 7 Ċ 8 -> 3 6 Ċ 3 6 -> 8 Ċ 9 -> 3 6 Ċ 3 6 -> 9 Ċ 1 0 -> 3 7 Ċ 3 7 -> 1 0 Ċ 1 1 -> 3 7 Ċ 3 7 -> 1 1 Ċ 1 2 -> 3 8 Ċ 3 8 -> 1 2 Ċ 1 3 -> 3 8 Ċ 3 8 -> 1 3 Ċ 1 4 -> 3 9 Ċ 3 9 -> 1 4 Ċ 1 5 -> 3 9 Ċ 3 9 -> 1 5 Ċ 1 6 -> 4 0 Ċ 4 0 -> 1 6 Ċ 1 7 -> 4 0 Ċ 4 0 -> 1 7 Ċ 1 8 -> 4 1 Ċ 4 1 -> 1 8 Ċ 1 9 -> 4 1 Ċ 4 1 -> 1 9 Ċ 2 0 -> 4 2 Ċ 4 2 -> 2 0 Ċ 2 1 -> 4 2 Ċ 4 2 -> 2 1 Ċ 2 2 -> 4 3 Ċ 4 3 -> 2 2 Ċ 2 3 -> 4 3 Ċ 4 3 -> 2 3 Ċ 2 4 -> 4 4 Ċ 4 4 -> 2 4 Ċ 2 5 -> 4 4 Ċ 4 4 -> 2 5 Ċ 2 6 -> 4 5 Ċ 4 5 -> 2 6 Ċ 2 7 -> 4 5 Ċ 4 5 -> 2 7 Ċ 2 8 -> 4 6 Ċ 4 6 -> 2 8 Ċ 2 9 -> 4 6 Ċ 4 6 -> 2 9 Ċ 3 0 -> 4 7 Ċ 4 7 -> 3 0 Ċ 3 1 -> 4 7 Ċ 4 7 -> 3 1 Ċ 4 1 -> 4 8 Ċ 4 8 -> 4 1 Ċ 3 5 -> 4 8 Ċ 4 8 -> 3 5 Ċ 4 3 -> 4 9 Ċ 4 9 -> 4 3 Ċ 4 7 -> 4 9 Ċ 4 9 -> 4 7 Ċ 3 9 -> 5 0 Ċ 5 0 -> 3 9 Ċ 4 2 -> 5 0 Ċ 5 0 -> 4 2 Ċ 3 4 -> 5 1 Ċ 5 1 -> 3 4 Ċ 3 2 -> 5 1 Ċ 5 1 -> 3 2 Ċ 3 8 -> 5 2 Ċ 5 2 -> 3 8 Ċ 3 7 -> 5 2 Ċ 5 2 -> 3 7 Ċ 3 3 -> 5 3 Ċ 5 3 -> 3 3 Ċ 4 4 -> 5 3 Ċ 5 3 -> 4 4 Ċ 4 9 -> 5 4 Ċ 5 4 -> 4 9 Ċ 4 5 -> 5 4 Ċ 5 4 -> 4 5 Ċ 3 6 -> 5 5 Ċ 5 5 -> 3 6 Ċ 4 0 -> 5 5 Ċ 5 5 -> 4 0 Ċ 5 5 -> 5 6 Ċ 5 6 -> 5 5 Ċ 5 4 -> 5 6 Ċ 5 6 -> 5 4 Ċ 5 6 -> 5 7 Ċ 5 7 -> 5 6 Ċ 4 6 -> 5 7 Ċ 5 7 -> 4 6 Ċ 5 1 -> 5 8 Ċ 5 8 -> 5 1 Ċ 5 7 -> 5 8 Ċ 5 8 -> 5 7 Ċ 4 8 -> 5 9 Ċ 5 9 -> 4 8 Ċ 5 8 -> 5 9 Ċ 5 9 -> 5 8 Ċ 5 0 -> 6 0 Ċ 6 0 -> 5 0 Ċ 5 9 -> 6 0 Ċ 6 0 -> 5 9 Ċ 5 2 -> 6 1 Ċ 6 1 -> 5 2 Ċ 5 3 -> 6 1 Ċ 6 1 -> 5 3 Ċ 6 0 -> 6 1 Ċ 6 1 -> 6 0 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġval Ġedge Ġ= Ġsample Input . remove First (). split (" Ġ") ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġedge [ 0 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġedge [ 1 ]. toInt () ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ: ĠMutable Map < Int , ĠMutable List < Int >> Ġ= Ġhash Map Of () ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġsample Input ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconn Ġ= Ġs . split (" -> ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġconn [ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġconn [ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . containsKey ( from )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] !!. add ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm [ from ] Ġ= Ġmutable ListOf ( to ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnn . two Nearest Neighbors ( a , Ġb , Ġm ) ĊĠĠĠĠĠĠĠ Ġ// Ġaccepted Ġanswer ĊĠĠĠĠĠĠĠ Ġval Ġexpected Output String Ġ= Ġ""" Ċ 0 -> 3 2 Ċ 1 -> 3 2 Ċ 1 0 -> 3 7 Ċ 1 1 -> 3 7 Ċ 1 2 -> 3 8 Ċ 1 3 -> 3 8 Ċ 1 4 -> 3 9 Ċ 1 5 -> 3 9 Ċ 1 6 -> 4 0 Ċ 1 7 -> 4 0 Ċ 1 8 -> 4 1 Ċ 1 9 -> 4 1 Ċ 2 -> 3 3 Ċ 2 0 -> 4 2 Ċ 2 1 -> 4 2 Ċ 2 2 -> 4 3 Ċ 2 3 -> 4 3 Ċ 2 4 -> 4 4 Ċ 2 5 -> 4 4 Ċ 2 6 -> 4 5 Ċ 2 7 -> 4 5 Ċ 2 8 -> 4 6 Ċ 2 9 -> 5 7 Ċ 3 -> 3 3 Ċ 3 0 -> 4 7 Ċ 3 1 -> 4 7 Ċ 3 2 -> 0 Ċ 3 2 -> 1 Ċ 3 2 -> 5 1 Ċ 3 3 -> 2 Ċ 3 3 -> 3 Ċ 3 3 -> 5 3 Ċ 3 4 -> 4 Ċ 3 4 -> 5 Ċ 3 4 -> 5 1 Ċ 3 5 -> 4 8 Ċ 3 5 -> 6 Ċ 3 5 -> 7 Ċ 3 6 -> 5 5 Ċ 3 6 -> 8 Ċ 3 6 -> 9 Ċ 3 7 -> 1 0 Ċ 3 7 -> 1 1 Ċ 3 7 -> 5 2 Ċ 3 8 -> 1 2 Ċ 3 8 -> 1 3 Ċ 3 8 -> 5 2 Ċ 3 9 -> 1 4 Ċ 3 9 -> 1 5 Ċ 3 9 -> 5 0 Ċ 4 -> 3 4 Ċ 4 0 -> 1 6 Ċ 4 0 -> 1 7 Ċ 4 0 -> 5 5 Ċ 4 1 -> 1 8 Ċ 4 1 -> 1 9 Ċ 4 1 -> 4 8 Ċ 4 2 -> 2 0 Ċ 4 2 -> 2 1 Ċ 4 2 -> 5 0 Ċ 4 3 -> 2 2 Ċ 4 3 -> 2 3 Ċ 4 3 -> 4 9 Ċ 4 4 -> 2 4 Ċ 4 4 -> 2 5 Ċ 4 4 -> 5 3 Ċ 4 5 -> 2 6 Ċ 4 5 -> 2 7 Ċ 4 5 -> 5 4 Ċ 4 6 -> 2 8 Ċ 4 6 -> 5 6 Ċ 4 6 -> 5 7 Ċ 4 7 -> 3 0 Ċ 4 7 -> 3 1 Ċ 4 7 -> 4 9 Ċ 4 8 -> 3 5 Ċ 4 8 -> 4 1 Ċ 4 8 -> 5 9 Ċ 4 9 -> 4 3 Ċ 4 9 -> 4 7 Ċ 4 9 -> 5 4 Ċ 5 -> 3 4 Ċ 5 0 -> 3 9 Ċ 5 0 -> 4 2 Ċ 5 0 -> 6 0 Ċ 5 1 -> 3 2 Ċ 5 1 -> 3 4 Ċ 5 1 -> 5 8 Ċ 5 2 -> 3 7 Ċ 5 2 -> 3 8 Ċ 5 2 -> 6 1 Ċ 5 3 -> 3 3 Ċ 5 3 -> 4 4 Ċ 5 3 -> 6 1 Ċ 5 4 -> 4 5 Ċ 5 4 -> 4 9 Ċ 5 4 -> 5 6 Ċ 5 5 -> 3 6 Ċ 5 5 -> 4 0 Ċ 5 5 -> 5 6 Ċ 5 6 -> 4 6 Ċ 5 6 -> 5 4 Ċ 5 6 -> 5 5 Ċ 5 7 -> 2 9 Ċ 5 7 -> 4 6 Ċ 5 7 -> 5 8 Ċ 5 8 -> 5 1 Ċ 5 8 -> 5 7 Ċ 5 8 -> 5 9 Ċ 5 9 -> 4 8 Ċ 5 9 -> 5 8 Ċ 5 9 -> 6 0 Ċ 6 -> 3 5 Ċ 6 0 -> 5 0 Ċ 6 0 -> 5 9 Ċ 6 0 -> 6 1 Ċ 6 1 -> 5 2 Ċ 6 1 -> 5 3 Ċ 6 1 -> 6 0 Ċ 7 -> 3 5 Ċ 8 -> 3 6 Ċ 9 -> 3 6 ĊĊ 0 -> 3 2 Ċ 1 -> 3 2 Ċ 1 0 -> 3 7 Ċ 1 1 -> 3 7 Ċ 1 2 -> 3 8 Ċ 1 3 -> 3 8 Ċ 1 4 -> 3 9 Ċ 1 5 -> 3 9 Ċ 1 6 -> 4 0 Ċ 1 7 -> 4 0 Ċ 1 8 -> 4 1 Ċ 1 9 -> 4 1 Ċ 2 -> 3 3 Ċ 2 0 -> 4 2 Ċ 2 1 -> 4 2 Ċ 2 2 -> 4 3 Ċ 2 3 -> 4 3 Ċ 2 4 -> 4 4 Ċ 2 5 -> 4 4 Ċ 2 6 -> 4 5 Ċ 2 7 -> 4 5 Ċ 2 8 -> 4 6 Ċ 2 9 -> 5 7 Ċ 3 -> 3 3 Ċ 3 0 -> 4 7 Ċ 3 1 -> 4 7 Ċ 3 2 -> 0 Ċ 3 2 -> 1 Ċ 3 2 -> 5 1 Ċ 3 3 -> 2 Ċ 3 3 -> 3 Ċ 3 3 -> 5 3 Ċ 3 4 -> 4 Ċ 3 4 -> 5 Ċ 3 4 -> 5 1 Ċ 3 5 -> 4 8 Ċ 3 5 -> 6 Ċ 3 5 -> 7 Ċ 3 6 -> 5 5 Ċ 3 6 -> 8 Ċ 3 6 -> 9 Ċ 3 7 -> 1 0 Ċ 3 7 -> 1 1 Ċ 3 7 -> 5 2 Ċ 3 8 -> 1 2 Ċ 3 8 -> 1 3 Ċ 3 8 -> 5 2 Ċ 3 9 -> 1 4 Ċ 3 9 -> 1 5 Ċ 3 9 -> 5 0 Ċ 4 -> 3 4 Ċ 4 0 -> 1 6 Ċ 4 0 -> 1 7 Ċ 4 0 -> 5 5 Ċ 4 1 -> 1 8 Ċ 4 1 -> 1 9 Ċ 4 1 -> 4 8 Ċ 4 2 -> 2 0 Ċ 4 2 -> 2 1 Ċ 4 2 -> 5 0 Ċ 4 3 -> 2 2 Ċ 4 3 -> 2 3 Ċ 4 3 -> 4 9 Ċ 4 4 -> 2 4 Ċ 4 4 -> 2 5 Ċ 4 4 -> 5 3 Ċ 4 5 -> 2 6 Ċ 4 5 -> 2 7 Ċ 4 5 -> 5 4 Ċ 4 6 -> 2 8 Ċ 4 6 -> 5 7 Ċ 4 6 -> 5 8 Ċ 4 7 -> 3 0 Ċ 4 7 -> 3 1 Ċ 4 7 -> 4 9 Ċ 4 8 -> 3 5 Ċ 4 8 -> 4 1 Ċ 4 8 -> 5 9 Ċ 4 9 -> 4 3 Ċ 4 9 -> 4 7 Ċ 4 9 -> 5 4 Ċ 5 -> 3 4 Ċ 5 0 -> 3 9 Ċ 5 0 -> 4 2 Ċ 5 0 -> 6 0 Ċ 5 1 -> 3 2 Ċ 5 1 -> 3 4 Ċ 5 1 -> 5 8 Ċ 5 2 -> 3 7 Ċ 5 2 -> 3 8 Ċ 5 2 -> 6 1 Ċ 5 3 -> 3 3 Ċ 5 3 -> 4 4 Ċ 5 3 -> 6 1 Ċ 5 4 -> 4 5 Ċ 5 4 -> 4 9 Ċ 5 4 -> 5 6 Ċ 5 5 -> 3 6 Ċ 5 5 -> 4 0 Ċ 5 5 -> 5 6 Ċ 5 6 -> 5 4 Ċ 5 6 -> 5 5 Ċ 5 6 -> 5 7 Ċ 5 7 -> 2 9 Ċ 5 7 -> 4 6 Ċ 5 7 -> 5 6 Ċ 5 8 -> 4 6 Ċ 5 8 -> 5 1 Ċ 5 8 -> 5 9 Ċ 5 9 -> 4 8 Ċ 5 9 -> 5 8 Ċ 5 9 -> 6 0 Ċ 6 -> 3 5 Ċ 6 0 -> 5 0 Ċ 6 0 -> 5 9 Ċ 6 0 -> 6 1 Ċ 6 1 -> 5 2 Ċ 6 1 -> 5 3 Ċ 6 1 -> 6 0 Ċ 7 -> 3 5 Ċ 8 -> 3 6 Ċ 9 -> 3 6 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent (). lines (). to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġ// Ġform Ġthe Ġtwo Ġexpected Ġresult Ġlists ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġexpected List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcurr List Ġ= Ġexpected List 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġexpected Output String . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġexpected Output String [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . length Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List Ġ= Ġexpected List 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr List . add ( s ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow Ġmake Ġtwo Ġlists Ġfrom Ġthe Ġresults ĊĠĠĠĠĠĠĠ Ġval Ġresults List 1 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġval Ġresults List 2 Ġ: ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Output Ġ= Ġresults List 1 ĊĠĠĠĠĠĠĠ Ġvar Ġcur Decode Input Ġ= Ġresult [ 0 ] ĊĠĠĠĠĠĠĠ Ġfor Ġ( l Ġin Ġ 0 .. 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġcur Decode Input . keys ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( to Ġin Ġcur Decode Input [ k ] !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output . add ("$ k ->$ to ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Input Ġ= Ġresult [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Decode Output Ġ= Ġresults List 2 ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 1 . sorted (). join ToString ("\ n ")) Ċ // ĠĠĠĠĠĠĠ Ġprintln ("") Ċ // ĠĠĠĠĠĠĠ Ġprintln ( results List 2 . sorted (). join ToString ("\ n ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 1 . sorted (), Ġresults List 1 . sorted ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected List 2 . sorted (), Ġresults List 2 . sorted ()) ĊĊĊĠĠĠ Ġ} Ċ Ċ }