/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠLe on ĠL inh art Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġdays Ċ Ċ /* Ċ Ġ* ĠCan 't Ġsolve Ġthis Ġin Ġcode Ġwithout Ġwriting Ġa Ġfull Ġinterval Ġconstraint Ġsolver / optimizer ... Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġnot Ġmy Ġidea , Ġbut ĠI 'll Ġdocument Ġit Ġanyway Ġbecause Ġotherwise Ġthe Ċ Ġ* Ġimplementation Ġis Ġeverything Ġbut Ġtrivial . Ċ Ġ* Ċ Ġ* ĠThe Ġinput Ġcan Ġbe Ġdivided Ġin Ġ 1 4 Ġblocks Ġ( each Ġstarting Ġwith Ġan Ġ` inp ` Ġinstruction ). ĠEach Ċ Ġ* Ġinput Ġblock Ġroughly Ġlooks Ġas Ġfollows : Ċ Ġ* Ċ Ġ* Ġinp Ġw Ċ Ġ* Ġmul Ġx Ġ 0 Ċ Ġ* Ġadd Ġx Ġz Ċ Ġ* Ġmod Ġx Ġ 2 6 Ċ Ġ* Ġdiv Ġz Ġ{ DIV } Ċ Ġ* Ġadd Ġx Ġ{ CHECK } Ċ Ġ* Ġeql Ġx Ġw Ċ Ġ* Ġeql Ġx Ġ 0 Ċ Ġ* Ġmul Ġy Ġ 0 Ċ Ġ* Ġadd Ġy Ġ 2 5 Ċ Ġ* Ġmul Ġy Ġx Ċ Ġ* Ġadd Ġy Ġ 1 Ċ Ġ* Ġmul Ġz Ġy Ċ Ġ* Ġmul Ġy Ġ 0 Ċ Ġ* Ġadd Ġy Ġw Ċ Ġ* Ġadd Ġy Ġ{ OFFSET } Ċ Ġ* Ġmul Ġy Ġx Ċ Ġ* Ġadd Ġz Ġy Ċ Ġ* Ċ Ġ* Ġwhere Ġ{ DIV }, Ġ{ CHECK } Ġand Ġ{ OFFSET } Ġvary Ġper Ġblock . Ċ Ġ* Ċ Ġ* ĠA Ġcouple Ġof Ġnotes Ġthough : Ċ Ġ* Ġ 1 . Ġ{ DIV } Ġis Ġ 1 Ġin Ġhalf Ġof Ġthe Ġblocks Ġand Ġ 2 6 Ġin Ġthe Ġother Ġhalf . Ċ Ġ* Ġ 2 . Ġ{ CHECK } Ġis Ġpositive Ġexactly Ġwhen Ġ{ DIV } Ġis Ġ 1 . Ċ Ġ* Ġ 3 . Ġx Ġand Ġy Ġare Ġcleared Ġbefore Ġthey Ġare Ġused . Ċ Ġ* Ċ Ġ* ĠUsing Ġthis Ġknowledge , Ġthe Ġfollowing Ġfunction Ġcan Ġbe Ġderived : Ċ Ġ* Ċ Ġ* Ġfun Ġ( w , Ġz ): Ċ Ġ* ĠĠ Ġx Ġ= Ġ( z Ġ% Ġ 2 6 ) Ġ+ Ġ{ CHECK } Ċ Ġ* ĉ Ġif Ġ( CHECK Ġ< Ġ 0 ) Ċ Ġ* ĠĠĠĠĠ Ġz Ġ/= Ġ 2 6 Ċ Ġ* ĠĠ Ġelse Ċ Ġ* ĠĠĠĠĠ Ġz Ġ= Ġ 2 6 Ġ* Ġz Ġ+ Ġw Ġ+ Ġ{ OFFSET } Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġ{ CHECK }, Ġ{ OFFSET } Ċ Ġ* ĠĠ 1 . ĠĠĠĠĠĠ 1 0 , ĠĠĠĠĠĠĠĠ 1 Ċ Ġ* ĠĠ 2 . ĠĠĠĠĠĠ 1 1 , ĠĠĠĠĠĠĠĠ 9 Ċ Ġ* ĠĠ 3 . ĠĠĠĠĠĠ 1 4 , ĠĠĠĠĠĠĠ 1 2 Ċ Ġ* ĠĠ 4 . ĠĠĠĠĠĠ 1 3 , ĠĠĠĠĠĠĠĠ 6 Ċ Ġ* ĠĠ 5 . ĠĠĠĠĠ Ġ- 6 , ĠĠĠĠĠĠĠĠ 9 Ċ Ġ* ĠĠ 6 . ĠĠĠĠ Ġ- 1 4 , ĠĠĠĠĠĠĠ 1 5 Ċ Ġ* ĠĠ 7 . ĠĠĠĠĠĠ 1 4 , ĠĠĠĠĠĠĠĠ 7 Ċ Ġ* ĠĠ 8 . ĠĠĠĠĠĠ 1 3 , ĠĠĠĠĠĠĠ 1 2 Ċ Ġ* ĠĠ 9 . ĠĠĠĠĠ Ġ- 8 , ĠĠĠĠĠĠĠ 1 5 Ċ Ġ* Ġ 1 0 . ĠĠĠĠ Ġ- 1 5 , ĠĠĠĠĠĠĠĠ 3 Ċ Ġ* Ġ 1 1 . ĠĠĠĠĠĠ 1 0 , ĠĠĠĠĠĠĠĠ 6 Ċ Ġ* Ġ 1 2 . ĠĠĠĠ Ġ- 1 1 , ĠĠĠĠĠĠĠĠ 2 Ċ Ġ* Ġ 1 3 . ĠĠĠĠ Ġ- 1 3 , ĠĠĠĠĠĠĠ 1 0 Ċ Ġ* Ġ 1 4 . ĠĠĠĠĠ Ġ- 4 , ĠĠĠĠĠĠĠ 1 2 Ċ Ġ* Ċ Ġ* ĠĠ 1 . ĠP USH Ġinput [ 0 ] Ġ+ Ġ 1 ĊĠĠĠĠ Ġ* ĠĠ 2 . ĠP USH Ġinput [ 1 ] Ġ+ Ġ 9 ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ 3 . ĠP USH Ġinput [ 2 ] Ġ+ Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠĠ 4 . ĠP USH Ġinput [ 3 ] Ġ+ Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠĠ 5 . ĠPOP . Ġinput [ 4 ] Ġ== Ġv Ġ- Ġ 6 ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ 6 . ĠPOP . Ġinput [ 5 ] Ġ== Ġv Ġ- Ġ 1 4 ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ 7 . ĠP USH Ġinput [ 6 ] Ġ+ Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠĠ 8 . ĠP USH Ġinput [ 7 ] Ġ+ Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠĠ 9 . ĠPOP . Ġinput [ 8 ] Ġ== Ġv Ġ- Ġ 8 ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 1 0 . ĠPOP . Ġinput [ 9 ] Ġ== Ġv Ġ- Ġ 1 5 ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 1 1 . ĠP USH Ġinput [ 1 0 ] Ġ+ Ġ 6 ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 1 2 . ĠPOP . Ġinput [ 1 1 ] Ġ== Ġv Ġ- Ġ 1 1 ĊĠĠĠĠ Ġ* Ġ 1 3 . ĠPOP . Ġinput [ 1 2 ] Ġ== Ġv Ġ- Ġ 1 3 Ċ Ġ* Ġ 1 4 . ĠPOP . Ġinput [ 1 3 ] Ġ== Ġv Ġ- Ġ 4 Ċ Ġ* Ċ Ġ* Ċ Ġ* Ġinput [ 4 ] Ġ= Ġinput [ 3 ] Ċ Ġ* Ġinput [ 5 ] Ġ= Ġinput [ 2 ] Ġ- Ġ 2 Ċ Ġ* Ġinput [ 8 ] Ġ= Ġinput [ 7 ] Ġ+ Ġ 4 Ċ Ġ* Ġinput [ 9 ] Ġ= Ġinput [ 6 ] Ġ- Ġ 8 Ċ Ġ* Ġinput [ 1 1 ] Ġ= Ġinput [ 1 0 ] Ġ- Ġ 5 Ċ Ġ* Ġinput [ 1 2 ] Ġ= Ġinput [ 1 ] Ġ- Ġ 4 Ċ Ġ* Ġinput [ 1 3 ] Ġ= Ġinput [ 0 ] Ġ- Ġ 3 Ċ Ġ*/ Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġfun Ġpart 1 () Ġ= Ġ" 9 9 9 9 9 7 9 5 9 1 9 4 5 6 " ĊĠĠĠ Ġfun Ġpart 2 () Ġ= Ġ" 4 5 3 1 1 1 9 1 5 1 6 1 1 1 " ĊĊĠĠĠ Ġprintln (" Part Ġ 1 : Ġ${ part 1 () }") ĊĠĠĠ Ġprintln (" Part Ġ 2 : Ġ${ part 2 () }") Ċ }