package Ġic fp 2 0 1 9 Ċ Ċ // ĠGiven Ġa Ġmap , Ġreturn Ġa Ġmap Ġof Ġweights Ġwhere Ġthe Ġweight Ġindicates Ġthe Ġdistance Ċ // Ġthe Ġsquare Ġis Ġfrom Ġthe Ġwalls . ĠWe Ġwill Ġsum Ġthe Ġdistance Ġto Ġclose Ġhorizontal Ġand Ġvertical Ġwalls . Ċ Ċ fun Ġapply Distance Algorithm ( map : ĠArray < Array < Node >> ): ĠList < List < Int >> Ġ{ ĊĠĠĠ Ġval Ġmax X Ġ= Ġmap . size ĊĠĠĠ Ġval Ġmax Y Ġ= Ġmap [ 0 ]. size ĊĠĠĠ Ġval Ġret Ġ= Ġmap . map Indexed Ġ{ Ġx , Ġsub Array Ġ-> ĊĠĠĠĠĠĠĠ Ġsub Array . map Indexed Ġ{ Ġy , Ġnode Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node . is Ob stacle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweight X Ġ= Ġif Ġ( x Ġ< Ġmax X Ġ/ Ġ 2 ) Ġx Ġ+ Ġ 1 Ġelse Ġmax X Ġ- Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweight Y Ġ= Ġif Ġ( y Ġ< Ġmax Y Ġ/ Ġ 2 ) Ġy Ġ+ Ġ 1 Ġelse Ġmax Y Ġ- Ġy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight X Ġ+ Ġweight Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġret Ċ }