package Ġa oc 2 0 2 0 Ċ Ċ class ĠDay 1 0 ( input : ĠList < String >) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdifferences Ġ= Ġinput . map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġadd ( 0 ); Ġadd ( max OrNull () !! Ġ+ Ġ 3 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. zip With Next Ġ{ Ġa , Ġb Ġ-> Ġb Ġ- Ġa Ġ} ĊĊĠĠĠ Ġfun Ġsolve Part 1 (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdifferences . grouping By Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. each Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. reduce ( Int :: times ) Ġ// ĠThere Ġare Ġonly Ġ 1 Ġand Ġ 3 Ġdifferences Ġin Ġthe Ġinput , Ġmultiply Ġthem ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsolve Part 2 (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠDifferent Ġvariations Ġonly Ġhappen Ġwith Ġat Ġleast Ġtwo Ġones Ġin Ġa Ġrow , Ġcount Ġthe Ġlength Ġof Ġall Ġsequences Ġof Ġone . ĊĠĠĠĠĠĠĠ Ġvar Ġones In AR ow Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġsequences Of On es Ġ= Ġdifferences ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġif Ġ( it Ġ== Ġ 1 ) Ġ 0 . also Ġ{ Ġones In AR ow ++ Ġ} Ġelse Ġones In AR ow . also Ġ{ Ġones In AR ow Ġ= Ġ 0 Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ> Ġ 1 Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe 're Ġin Ġluck , Ġthe Ġinput Ġnever Ġhas Ġmore Ġthan Ġ 4 Ġones Ġin Ġa Ġrow . ĠWe Ġdon 't Ġneed Ġany Ġgeneric ĊĠĠĠĠĠĠĠ Ġ// Ġformula Ġfor Ġcalculating Ġthe Ġlength , Ġwe Ġcan Ġjust Ġcount Ġby Ġhand Ġhow Ġmany Ġpossib ilities ĊĠĠĠĠĠĠĠ Ġ// Ġeach Ġsequence Ġgenerate . ĠThen Ġwe Ġjust Ġmultiply Ġeverything Ġto Ġget Ġthe Ġtotal Ġnumber Ġof Ġcombinations . ĊĠĠĠĠĠĠĠ Ġreturn Ġsequences Of On es . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ 2 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ 4 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ 7 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror (" unsupported Ġamount : Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. reduce ( Long :: times ) ĊĠĠĠ Ġ} Ċ }