package Ġnet . o leg g . a oc . year 2 0 1 5 . day 2 5 Ċ Ċ import Ġnet . o leg g . a oc . so med ay . Some Day Ċ import Ġnet . o leg g . a oc . year 2 0 1 5 . Day Of 2 0 1 5 Ċ Ċ /** Ċ Ġ* ĠSee Ġ[ Year Ġ 2 0 1 5 , ĠDay Ġ 2 5 ]( https :// ad vent of code . com / 2 0 1 5 / day / 2 5 ) Ċ Ġ*/ Ċ object ĠDay 2 5 Ġ: ĠDay Of 2 0 1 5 ( 2 5 ) Ġ{ ĊĠ Ġprivate Ġval ĠP ATTERN Ġ= Ġ" .* \\ b (\\ d +) \\ b .* \\ b (\\ d +) \\ b ". to Regex () ĊĊĠ Ġoverride Ġfun Ġfirst ( data : ĠString ): ĠAny ? Ġ{ ĊĠĠĠ Ġreturn ĠP ATTERN ĊĠĠĠĠĠ Ġ. find ( data ) ĊĠĠĠĠĠ Ġ? . let Ġ{ Ġmatch Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġ( row , Ġcolumn ) Ġ= Ġmatch . de structured . toList (). map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġ( row Ġ+ Ġcolumn Ġ- Ġ 1 ) Ġ* Ġ( row Ġ+ Ġcolumn Ġ- Ġ 2 ) Ġ/ Ġ 2 Ġ+ Ġcolumn ĊĠĠĠĠĠĠĠ Ġreturn @ let Ġ( 1 Ġuntil Ġpos ). fold ( 2 0 1 5 1 1 2 5 L ) Ġ{ Ġacc , Ġ_ Ġ-> Ġ( acc Ġ* Ġ 2 5 2 5 3 3 L ) Ġ% Ġ 3 3 5 5 4 3 9 3 L Ġ} ĊĠĠĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ= ĠSome Day . main ify ( Day 2 5 ) Ċ