package Ġdays Ċ Ċ import Ġdays . Day Ċ Ċ class ĠDay 3 Ġ: ĠDay ( 3 ) Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġtree Count ( right : ĠInt Ġ= Ġ 3 , Ġdown : ĠInt Ġ= Ġ 1 ): ĠLong Ġ= ĊĠĠĠĠĠĠĠ Ġinput List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. window ed ( size Ġ= Ġ 1 , Ġstep Ġ= Ġdown , Ġtransform Ġ= Ġ{ Ġlines Ġ-> Ġlines . first () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold Indexed ( 0 ) Ġ{ Ġi , Ġacc , Ġline Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc Ġ+ Ġif Ġ( line [( i Ġ* Ġright ) Ġ% Ġline . length ] Ġ== Ġ'# ') Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpart One (): ĠAny Ġ= Ġtree Count () ĊĊĠĠĠ Ġoverride Ġfun Ġpart Two (): ĠAny Ġ= ĊĠĠĠĠĠĠĠ Ġ// ĠList Ġof ĠRight , ĠDown Ġvectors ĊĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 1 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 3 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 5 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 7 , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 1 , Ġ 2 ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( 1 ) Ġ{ Ġacc : ĠLong , Ġ( right , Ġdown ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc Ġ* Ġtree Count ( right , Ġdown ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } ĊĊĊ