package Ġcom . github . ic aro hs 7 . un ox graph . oper acoes . ar v ore ger adora Ċ Ċ import Ġcom . github . ic aro hs 7 . un ox graph . est atic o . INF INIT O Ċ import Ġcom . github . ic aro hs 7 . un ox graph . graf os . G ra fo . Are sta Ċ import Ġcom . github . ic aro hs 7 . un ox k commons . ext en so es . cells Ċ import Ġcom . github . ic aro hs 7 . un ox k commons . fun co es . mat riz Of Ċ import Ġjava . util . Arrays Ċ Ċ class ĠM ST ( val Ġtamanho : ĠInt ) Ġ{ ĊĉĊ ĉ @ Suppress (" Member Visibility Can Be Private ") Ċ ĉ val Ġtree Ġ= Ġmat riz Of ( t amanho ) Ġ{ ĠINF INIT O Ġ} ĊĉĊ ĉ internal Ġfun Ġadd Are sta ( arest a : ĠA rest a , Ġdire cion ado : ĠBoolean Ġ= Ġfalse ) Ġ{ Ċĉ ĉ /* ĠN Ã£o Ġpermit ir Ġa Ġinser Ã§Ã£o Ġde Ġare sta Ġrepet ida Ġ*/ Ċĉ ĉ if Ġ( tree [ arest a . ori gem ][ arest a . dest ino ] Ġ!= ĠINF INIT O ) Ġreturn ĊĉĉĊĉ ĉ /* ĠA dic ion ar Ġare sta Ġ*/ Ċĉ ĉ tree [ arest a . ori gem ][ arest a . dest ino ] Ġ= Ġare sta . pes o ĊĉĉĊĉ ĉ /* ĠA dic ion ar Ġa Ġvol ta Ġcaso Ġo Ġg ra fo Ġseja ĠnÃ£o Ġdire cion ado Ġ*/ Ċĉ ĉ if Ġ(! dire cion ado ) Ġtree [ arest a . dest ino ][ arest a . ori gem ] Ġ= Ġare sta . pes o Ċ ĉ } ĊĉĊ ĉ /** Ċĉ Ġ* ĠRet orna Ġuma Ġlista Ġcont endo Ġas Ġare st as Ġpresent es Ġna ĠÃ¡ rv ore Ġger adora Ċĉ Ġ*/ Ċ ĉ val Ġare st as : ĠList < Are sta > Ċĉ ĉ get () Ġ= Ġtree . cells . filter Ġ{ Ġit . value Ġ!= ĠINF INIT O Ġ}. map Ġ{ ĠA rest a ( it . row , Ġit . col , Ġit . value ) Ġ}. distinct () ĊĉĊ ĉ override Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ Ċĉ ĉ if Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue Ċĉ ĉ if Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĉĉĊĉ ĉ other Ġas ĠM ST ĊĉĉĊĉ ĉ if Ġ( t amanho Ġ!= Ġother . t amanho ) Ġreturn Ġfalse Ċĉ ĉ if Ġ( tree . cells Ġ!= Ġother . tree . cells ) Ġreturn Ġfalse ĊĉĉĊĉ ĉ return Ġtrue Ċ ĉ } ĊĉĊ ĉ override Ġfun ĠhashCode (): ĠInt Ġ{ Ċĉ ĉ var Ġresult Ġ= Ġtamanho Ċĉ ĉ result Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ ĠArrays . hashCode ( tree ) Ċĉ ĉ return Ġresult Ċ ĉ } Ċĉ Ċ }