package Ġdec 9 Ċ Ċ import Ġjava . lang . Exception Ċ Ċ @ Experimental Std lib Api Ċ fun Ġfind Range That Sum s ( target : ĠLong , Ġdigits : ĠList < Long >): ĠList < Long > Ġ{ ĊĠĠĠĠ Ġval Ġresult Ġ= Ġdigits . scan ( 0 L ) Ġ{ Ġacc , Ġl Ġ-> Ġacc Ġ+ Ġl Ġ} ĊĠĠĠĠĠĠĠĠ Ġ. indexOf ( target ) ĊĊĠĠĠ Ġreturn Ġif ( result Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Range That Sum s ( target , Ġdigits . drop ( 1 )) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġdigits . sub List ( 0 , Ġresult + 1 ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġfind Min And Max Sum med ( numbers : ĠList < Long >): ĠLong Ġ{ ĊĠĠĠ Ġval Ġmin Ġ= Ġnumbers . min () Ġ?: Ġthrow ĠException (" List Ġmust ĠHave Ġmin ") ĊĠĠĠ Ġval Ġmax Ġ= Ġnumbers . max () Ġ?: Ġthrow ĠException (" List Ġmust ĠHave Ġmax ") ĊĊĠĠĠ Ġreturn Ġmin Ġ+ Ġmax Ċ } Ċ Ċ tail rec Ġfun Ġfind Value That Does nt Sum ( digits : ĠList < Long >): ĠLong Ġ{ ĊĠĠĠ Ġval Ġtarget Ġ= Ġdigits [ 2 5 ] ĊĠĠĠ Ġval Ġpre lude Ġ= Ġdigits . take ( 2 5 ) ĊĊĠĠĠ Ġval Ġhas Match Ġ= Ġpre lude . to Combin ations ( 2 ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit [ 0 ] Ġ+ Ġit [ 1 ] Ġ} ĊĠĠĠĠĠĠĠ Ġ. any Ġ{ Ġit Ġ== Ġtarget Ġ} ĊĊĠĠĠ Ġreturn Ġif Ġ(! has Match ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Value That Does nt Sum ( digits . drop ( 1 )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠList < Int >. multiply List (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġthis . reduce Ġ{ Ġacc , Ġi Ġ-> Ġacc Ġ* Ġi Ġ} Ċ } Ċ Ċ @ Experimental Std lib Api Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln (" ------------ ĠPART Ġ 1 Ġ------------ ") ĊĠĠĠ Ġval Ġresult Ġ= Ġfind Value That Does nt Sum ( input ) ĊĠĠĠ Ġprintln (" result : Ġ$ result ") ĊĊĊĠĠĠ Ġprintln (" ------------ ĠPART Ġ 2 Ġ------------ ") ĊĠĠĠ Ġval Ġrange Ġ= Ġfind Range That Sum s ( result , Ġinput ) ĊĠĠĠ Ġval Ġresult 2 Ġ= Ġfind Min And Max Sum med ( range ) ĊĠĠĠ Ġprintln ( result 2 ) Ċ } Ċ