package Ġdk . less or Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġx mas Ġ= ĠreadFile (" day _ 9 . txt "). map Ġ{ Ġit . to Long () Ġ} ĊĠĠĠ Ġval Ġinvalid Ġ= Ġanalyze X mas ( x mas ) ĊĠĠĠ Ġprintln ( invalid ) ĊĠĠĠ Ġprintln ( find Encryption Weak ness ( x mas , Ġinvalid )) Ċ } Ċ Ċ fun Ġanalyze X mas ( x mas : ĠList < Long >, Ġp reamble Size : ĠInt Ġ= Ġ 2 5 ): ĠLong Ġ{ ĊĠĠĠ Ġfor Ġ( i Ġin Ġp reamble Size .. x mas . last Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= Ġx mas [ i ] ĊĠĠĠĠĠĠĠ Ġval Ġp reamble Ġ= Ġcalculate P reamble Values ( x mas . drop ( i Ġ- Ġp reamble Size ). take ( pre amble Size )) ĊĠĠĠĠĠĠĠ Ġif Ġ(! pre amble . contains ( number )) Ġreturn Ġnumber ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġ 0 Ċ } Ċ Ċ fun Ġcalculate P reamble Values ( pre amble : ĠList < Long >): ĠSet < Long > Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġmutable Set Of < Long >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġp reamble . last Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġ+ Ġ 1 .. pre amble . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ+= Ġp reamble [ i ] Ġ+ Ġp reamble [ j ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġfind Encryption Weak ness ( x mas : ĠList < Long >, Ġinvalid : ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġvar Ġlongest Ġ= ĠlistOf < Long >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. x mas . last Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġfind Lon gest C ain ( x mas . drop ( i ), Ġinvalid ) ĊĠĠĠĠĠĠĠ Ġif Ġ( temp . size Ġ> Ġlongest . size ) Ġlongest Ġ= Ġtemp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlongest Ġ= Ġlongest . sorted () ĊĠĠĠ Ġreturn Ġlongest . first () Ġ+ Ġlongest . last () Ċ } Ċ Ċ fun Ġfind Lon gest C ain ( x mas : ĠList < Long >, Ġinvalid : ĠLong ): ĠList < Long > Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < Long >() ĊĠĠĠ Ġvar Ġsum Ġ= Ġ 0 L ĊĠĠĠ Ġfor Ġ( number Ġin Ġx mas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . add ( number ) ĊĠĠĠĠĠĠĠ Ġsum Ġ+= Ġnumber ĊĠĠĠĠĠĠĠ Ġif Ġ( sum Ġ> Ġinvalid ) Ġreturn Ġempty List () ĊĠĠĠĠĠĠĠ Ġif Ġ( sum Ġ== Ġinvalid ) Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġempty List () Ċ } Ċ