package Ġcode forces . round 6 1 6 Ċ Ċ fun Ġsolve ( k : ĠInt , Ġto Switch : ĠList < Int >, Ġwhere : ĠList < List < Int >> ): ĠList < Int > Ġ{ Ċ ĉ val Ġp Ġ= ĠMutable List ( k ) Ġ{ Ġit Ġ} Ċ ĉ val Ġodd Ġ= ĠMutable List ( k ) Ġ{ Ġ 0 Ġ} Ċ ĉ val Ġd Ġ= ĠList ( k ) Ġ{ Ġmutable ListOf ( 0 , Ġ 1 ) Ġ} Ċ ĉ fun Ġget ( x : ĠInt ): ĠInt Ġ{ Ċĉ ĉ if Ġ( p [ x ] Ġ== Ġx ) Ġreturn Ġx Ċĉ ĉ val Ġpar Ġ= Ġp [ x ] Ċĉ ĉ p [ x ] Ġ= Ġget ( par ) Ċĉ ĉ odd [ x ] Ġ= Ġodd [ x ] Ġxor Ġodd [ par ] Ċĉ ĉ return Ġp [ x ] Ċ ĉ } Ċ ĉ fun Ġspend ( x : ĠInt ): ĠInt Ġ{ Ċĉ ĉ if Ġ( where [ x ]. isEmpty ()) Ġreturn Ġ 0 Ċĉ ĉ if Ġ( where [ x ]. size Ġ== Ġ 1 ) Ġ{ Ċĉĉ ĉ val Ġ( a ) Ġ= Ġwhere [ x ] Ċĉĉ ĉ val Ġaa Ġ= Ġget ( a ) Ċĉĉ ĉ val Ġold Ġ= Ġd [ aa ]. min OrNull () !! Ċĉĉ ĉ d [ aa ][ odd [ a ] Ġxor Ġto Switch [ x ] Ġxor Ġ 1 ] Ġ= Ġk Ġ+ Ġ 1 Ċĉĉ ĉ return Ġd [ aa ]. min OrNull () !! Ġ- Ġold Ċĉ ĉ } Ċĉ ĉ val Ġ( a , Ġb ) Ġ= Ġwhere [ x ]. let Ġ{ Ġif Ġ(( x Ġ+ Ġit . hashCode ()) Ġ% Ġ 2 Ġ== Ġ 0 ) Ġit Ġelse Ġit . reversed () Ġ} Ċĉ ĉ val Ġ( aa , Ġbb ) Ġ= Ġget ( a ) Ġto Ġget ( b ) Ċĉ ĉ if Ġ( aa Ġ== Ġbb ) Ġreturn Ġ 0 Ċĉ ĉ p [ aa ] Ġ= Ġbb Ċĉ ĉ odd [ aa ] Ġ= Ġodd [ a ] Ġxor Ġodd [ b ] Ġxor Ġto Switch [ x ] Ċĉ ĉ val Ġold Ġ= Ġd [ aa ]. min OrNull () !! Ġ+ Ġd [ bb ]. min OrNull () !! Ċĉ ĉ for Ġ( i Ġin Ġ 0 .. 1 ) Ġ{ Ċĉĉ ĉ d [ bb ][ i ] Ġ= Ġmin Of ( d [ bb ][ i ] Ġ+ Ġd [ aa ][ i Ġxor Ġodd [ aa ]], Ġk Ġ+ Ġ 1 ) Ċĉ ĉ } Ċĉ ĉ return Ġd [ bb ]. min OrNull () !! Ġ- Ġold Ċ ĉ } Ċ ĉ var Ġans Ġ= Ġ 0 Ċ ĉ return Ġto Switch . indices . map Ġ{ Ġans Ġ+= Ġspend ( it ); Ġans Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ Ċ ĉ val Ġ(_, Ġk ) Ġ= Ġread Ints () Ċ ĉ val Ġto Switch Ġ= Ġread Ln (). map Ġ{ Ġ' 1 ' Ġ- Ġit Ġ} Ċ ĉ val Ġwhere Ġ= ĠList ( to Switch . size ) Ġ{ Ġmutable ListOf < Int >() Ġ} Ċ ĉ repeat ( k ) Ġ{ Ġi Ġ-> Ċĉ ĉ read Ln () Ċĉ ĉ read Ints (). forEach Ġ{ Ġwhere [ it Ġ- Ġ 1 ]. add ( i ) Ġ} Ċ ĉ } Ċ ĉ println ( solve ( k , Ġto Switch , Ġwhere ). join ToString ("\ n ")) Ċ } Ċ Ċ private Ġfun Ġread Ln () Ġ= Ġread Line () !! Ċ private Ġfun Ġread Strings () Ġ= Ġread Ln (). split (" Ġ") Ċ private Ġfun Ġread Ints () Ġ= Ġread Strings (). map Ġ{ Ġit . toInt () Ġ} Ċ