package Ġme . pe ck b . a oc ._ 2 0 1 7 . calendar . day 0 2 Ċ Ċ import Ġjavax . inject . Inject Ċ Ċ import Ġme . pe ck b . a oc . generators . Input Generator . Input Generator Factory Ċ import Ġkotlin . Int . Companion . MAX _ VALUE Ċ import Ġkotlin . Int . Companion . MIN _ VALUE Ċ import Ġkotlin . math . max Ċ import Ġkotlin . math . min Ċ Ċ class ĠDay 0 2 Ġ@ Inject Ġconstructor ( private Ġval Ġgenerator Factory : ĠInput Generator Factory ) Ġ{ ĊĠ Ġfun Ġpart One ( filename : ĠString ) Ġ= Ġgenerator Factory . for File ( filename ). read Ġ{ Ġinput Ġ-> ĊĠĠĠ Ġinput . sum Of Ġ{ Ġline Ġ-> ĊĠĠĠĠĠ Ġvar Ġmax Ġ= ĠMIN _ VALUE ĊĠĠĠĠĠ Ġvar Ġmin Ġ= ĠMAX _ VALUE ĊĊĠĠĠĠĠ Ġline . split ( WH ITES PACE _ REGEX ). map Ġ{ Ġit . toInt () Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġmax Ġ= Ġmax ( it , Ġmax ) ĊĠĠĠĠĠĠĠ Ġmin Ġ= Ġmin ( it , Ġmin ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġmax Ġ- Ġmin ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġpart Two ( filename : ĠString ) Ġ= Ġgenerator Factory . for File ( filename ). read Ġ{ Ġinput Ġ-> ĊĠĠĠ Ġinput . sum Of Ġ{ Ġline Ġ-> ĊĠĠĠĠĠ Ġval Ġnumbers Ġ= Ġline . split ( WH ITES PACE _ REGEX ). map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġ 0 ĊĊĠĠĠĠĠ Ġnumbers . forEach Indexed Ġ{ Ġa Index , Ġa Ġ-> ĊĠĠĠĠĠĠĠ Ġnumbers . slice ( a Index Ġ+ Ġ 1 Ġuntil Ġnumbers . size ). forEach Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Ġ% Ġb Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġa Ġ/ Ġb ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( b Ġ% Ġa Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġb Ġ/ Ġa ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġvalue ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠWH ITES PACE _ REGEX Ġ= Ġ"\\ s +". to Regex () ĊĠ Ġ} Ċ } Ċ