package Ġad vent of code . y 2 0 1 9 Ċ Ċ import Ġad vent of code . Ad vent Solution Ċ import Ġad vent of code . solve Ċ Ċ fun Ġmain () Ġ= ĠDay 0 4 . solve () Ċ Ċ object ĠDay 0 4 Ġ: ĠAd vent Solution ( 2 0 1 9 , Ġ 4 , Ġ" Secure ĠContainer ") Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsolve Part One ( input : ĠString ) Ġ= Ġparse Fast ( input ). count Ġ{ Ġc Ġ-> ĊĠĠĠĠĠĠĠ Ġc . toString (). zip With Next (). any Ġ{ Ġ( a , Ġb ) Ġ-> Ġa Ġ== Ġb Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsolve Part Two ( input : ĠString ) Ġ= Ġparse Fast ( input ). count Ġ{ Ġc Ġ-> ĊĠĠĠĠĠĠĠ Ġc . toString (). groupBy Ġ{ Ġit Ġ}. any Ġ{ Ġit . value . size Ġ== Ġ 2 Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Fast ( input : ĠString ): ĠSequence < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( l , Ġh ) Ġ= Ġinput . split ('- '). map ( String :: toInt ) ĊĠĠĠĠĠĠĠ Ġreturn Ġiterate ( h ). drop While Ġ{ Ġit Ġ< Ġl Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġiterate ( bound : ĠInt ) Ġ= Ġsequence Ġ{ ĊĠĠĠĠĠĠĠ Ġouter @ Ġfor Ġ( a Ġin Ġ 0 .. 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( b Ġin Ġa .. 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( c Ġin Ġb .. 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( d Ġin Ġc .. 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġd .. 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( f Ġin Ġe .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġa Ġ* Ġ 1 0 0 _ 0 0 0 Ġ+ Ġb Ġ* Ġ 1 0 _ 0 0 0 Ġ+ Ġc Ġ* Ġ 1 _ 0 0 0 Ġ+ Ġd Ġ* Ġ 1 0 0 Ġ+ Ġe Ġ* Ġ 1 0 Ġ+ Ġf ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res Ġ> Ġbound ) Ġbreak @ outer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyield ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ