/* Ċ --- ĠDay Ġ 2 3 : ĠCr ab ĠC ups Ġ--- Ċ Ċ The Ġsmall Ġcr ab Ġchallenges Ġyou Ġto Ġa Ġgame ! ĠThe Ġcr ab Ġis Ġgoing Ġto Ġmix Ġup Ġsome Ġc ups , Ġand Ġyou Ġhave Ġto Ċ predict Ġwhere Ġthey 'll Ġend Ġup . Ċ Ċ The Ġc ups Ġwill Ġbe Ġarrange d Ġin Ġa Ġcircle Ġand Ġlabeled Ġclock wise Ġ( your Ġpuzzle Ġinput ). ĠFor Ġexample , Ġif Ċ your Ġlabel ing Ġwere Ġ 3 2 4 1 5 , Ġthere Ġwould Ġbe Ġfive Ġc ups Ġin Ġthe Ġcircle ; Ġgoing Ġclock wise Ġaround Ġthe Ġcircle Ċ from Ġthe Ġfirst Ġcup , Ġthe Ġc ups Ġwould Ġbe Ġlabeled Ġ 3 , Ġ 2 , Ġ 4 , Ġ 1 , Ġ 5 , Ġand Ġthen Ġback Ġto Ġ 3 Ġagain . Ċ Ċ Before Ġthe Ġcr ab Ġstarts , Ġit Ġwill Ġdesign ate Ġthe Ġfirst Ġcup Ġin Ġyour Ġlist Ġas Ġthe Ġcurrent Ġcup . ĠThe Ġcr ab Ġis Ċ then Ġgoing Ġto Ġdo Ġ 1 0 0 Ġmoves . Ċ Ċ Each Ġmove , Ġthe Ġcr ab Ġdoes Ġthe Ġfollowing Ġactions : Ċ Ċ - ĠThe Ġcr ab Ġp icks Ġup Ġthe Ġthree Ġc ups Ġthat Ġare Ġimmediately Ġclock wise Ġof Ġthe Ġcurrent Ġcup . ĠThey Ġare ĊĠ Ġremoved Ġfrom Ġthe Ġcircle ; Ġcup Ġspacing Ġis Ġadjusted Ġas Ġnecessary Ġto Ġmaintain Ġthe Ġcircle . Ċ - ĠThe Ġcr ab Ġselects Ġa Ġdestination Ġcup : Ġthe Ġcup Ġwith Ġa Ġlabel Ġequal Ġto Ġthe Ġcurrent Ġcup 's Ġlabel Ġminus ĊĠ Ġone . ĠIf Ġthis Ġwould Ġselect Ġone Ġof Ġthe Ġc ups Ġthat Ġwas Ġjust Ġpicked Ġup , Ġthe Ġcr ab Ġwill Ġkeep Ġsubtract ing ĊĠ Ġone Ġuntil Ġit Ġfinds Ġa Ġcup Ġthat Ġwasn 't Ġjust Ġpicked Ġup . ĠIf Ġat Ġany Ġpoint Ġin Ġthis Ġprocess Ġthe Ġvalue ĊĠ Ġgoes Ġbelow Ġthe Ġlowest Ġvalue Ġon Ġany Ġcup 's Ġlabel , Ġit Ġwraps Ġaround Ġto Ġthe Ġhighest Ġvalue Ġon Ġany Ġcup 's ĊĠ Ġlabel Ġinstead . Ċ - ĠThe Ġcr ab Ġplaces Ġthe Ġc ups Ġit Ġjust Ġpicked Ġup Ġso Ġthat Ġthey Ġare Ġimmediately Ġclock wise Ġof Ġthe ĊĠ Ġdestination Ġcup . ĠThey Ġkeep Ġthe Ġsame Ġorder Ġas Ġwhen Ġthey Ġwere Ġpicked Ġup . Ċ - ĠThe Ġcr ab Ġselects Ġa Ġnew Ġcurrent Ġcup : Ġthe Ġcup Ġwhich Ġis Ġimmediately Ġclock wise Ġof Ġthe Ġcurrent Ġcup . Ċ Ċ For Ġexample , Ġsuppose Ġyour Ġcup Ġlabel ing Ġwere Ġ 3 8 9 1 2 5 4 6 7 . ĠIf Ġthe Ġcr ab Ġwere Ġto Ġdo Ġmerely Ġ 1 0 Ġmoves , Ġthe Ċ following Ġchanges Ġwould Ġoccur : Ċ Ċ -- Ġmove Ġ 1 Ġ-- Ċ c ups : Ġ( 3 ) Ġ 8 ĠĠ 9 ĠĠ 1 ĠĠ 2 ĠĠ 5 ĠĠ 4 ĠĠ 6 ĠĠ 7 Ċ pick Ġup : Ġ 8 , Ġ 9 , Ġ 1 Ċ destination : Ġ 2 Ċ Ċ -- Ġmove Ġ 2 Ġ-- Ċ c ups : ĠĠ 3 Ġ( 2 ) Ġ 8 ĠĠ 9 ĠĠ 1 ĠĠ 5 ĠĠ 4 ĠĠ 6 ĠĠ 7 Ċ pick Ġup : Ġ 8 , Ġ 9 , Ġ 1 Ċ destination : Ġ 7 Ċ Ċ -- Ġmove Ġ 3 Ġ-- Ċ c ups : ĠĠ 3 ĠĠ 2 Ġ( 5 ) Ġ 4 ĠĠ 6 ĠĠ 7 ĠĠ 8 ĠĠ 9 ĠĠ 1 Ċ pick Ġup : Ġ 4 , Ġ 6 , Ġ 7 Ċ destination : Ġ 3 Ċ Ċ -- Ġmove Ġ 4 Ġ-- Ċ c ups : ĠĠ 7 ĠĠ 2 ĠĠ 5 Ġ( 8 ) Ġ 9 ĠĠ 1 ĠĠ 3 ĠĠ 4 ĠĠ 6 Ċ pick Ġup : Ġ 9 , Ġ 1 , Ġ 3 Ċ destination : Ġ 7 Ċ Ċ -- Ġmove Ġ 5 Ġ-- Ċ c ups : ĠĠ 3 ĠĠ 2 ĠĠ 5 ĠĠ 8 Ġ( 4 ) Ġ 6 ĠĠ 7 ĠĠ 9 ĠĠ 1 Ċ pick Ġup : Ġ 6 , Ġ 7 , Ġ 9 Ċ destination : Ġ 3 Ċ Ċ -- Ġmove Ġ 6 Ġ-- Ċ c ups : ĠĠ 9 ĠĠ 2 ĠĠ 5 ĠĠ 8 ĠĠ 4 Ġ( 1 ) Ġ 3 ĠĠ 6 ĠĠ 7 Ċ pick Ġup : Ġ 3 , Ġ 6 , Ġ 7 Ċ destination : Ġ 9 Ċ Ċ -- Ġmove Ġ 7 Ġ-- Ċ c ups : ĠĠ 7 ĠĠ 2 ĠĠ 5 ĠĠ 8 ĠĠ 4 ĠĠ 1 Ġ( 9 ) Ġ 3 ĠĠ 6 Ċ pick Ġup : Ġ 3 , Ġ 6 , Ġ 7 Ċ destination : Ġ 8 Ċ Ċ -- Ġmove Ġ 8 Ġ-- Ċ c ups : ĠĠ 8 ĠĠ 3 ĠĠ 6 ĠĠ 7 ĠĠ 4 ĠĠ 1 ĠĠ 9 Ġ( 2 ) Ġ 5 Ċ pick Ġup : Ġ 5 , Ġ 8 , Ġ 3 Ċ destination : Ġ 1 Ċ Ċ -- Ġmove Ġ 9 Ġ-- Ċ c ups : ĠĠ 7 ĠĠ 4 ĠĠ 1 ĠĠ 5 ĠĠ 8 ĠĠ 3 ĠĠ 9 ĠĠ 2 Ġ( 6 ) Ċ pick Ġup : Ġ 7 , Ġ 4 , Ġ 1 Ċ destination : Ġ 5 Ċ Ċ -- Ġmove Ġ 1 0 Ġ-- Ċ c ups : Ġ( 5 ) Ġ 7 ĠĠ 4 ĠĠ 1 ĠĠ 8 ĠĠ 3 ĠĠ 9 ĠĠ 2 ĠĠ 6 Ċ pick Ġup : Ġ 7 , Ġ 4 , Ġ 1 Ċ destination : Ġ 3 Ċ Ċ -- Ġfinal Ġ-- Ċ c ups : ĠĠ 5 Ġ( 8 ) Ġ 3 ĠĠ 7 ĠĠ 4 ĠĠ 1 ĠĠ 9 ĠĠ 2 ĠĠ 6 Ċ Ċ In Ġthe Ġabove Ġexample , Ġthe Ġc ups ' Ġvalues Ġare Ġthe Ġlabels Ġas Ġthey Ġappear Ġmoving Ġclock wise Ġaround Ġthe Ċ circle ; Ġthe Ġcurrent Ġcup Ġis Ġmarked Ġwith Ġ( Ġ). Ċ Ċ After Ġthe Ġcr ab Ġis Ġdone , Ġwhat Ġorder Ġwill Ġthe Ġc ups Ġbe Ġin ? ĠStarting Ġafter Ġthe Ġcup Ġlabeled Ġ 1 , Ġcollect Ċ the Ġother Ġc ups ' Ġlabels Ġclock wise Ġinto Ġa Ġsingle Ġstring Ġwith Ġno Ġextra Ġcharacters ; Ġeach Ġnumber Ġexcept Ġ 1 Ċ should Ġappear Ġexactly Ġonce . ĠIn Ġthe Ġabove Ġexample , Ġafter Ġ 1 0 Ġmoves , Ġthe Ġc ups Ġclock wise Ġfrom Ġ 1 Ġare Ċ labeled Ġ 9 , Ġ 2 , Ġ 6 , Ġ 5 , Ġand Ġso Ġon , Ġproducing Ġ 9 2 6 5 8 3 7 4 . ĠIf Ġthe Ġcr ab Ġwere Ġto Ġcomplete Ġall Ġ 1 0 0 Ġmoves , Ġthe Ċ order Ġafter Ġcup Ġ 1 Ġwould Ġbe Ġ 6 7 3 8 4 5 2 9 . Ċ Ċ Using Ġyour Ġlabel ing , Ġsimulate Ġ 1 0 0 Ġmoves . ĠWhat Ġare Ġthe Ġlabels Ġon Ġthe Ġc ups Ġafter Ġcup Ġ 1 ? Ċ */ Ċ Ċ package Ġcom . cur tis lb . ad vent of code . year 2 0 2 0 . day 2 3 . part 1 Ċ Ċ import Ġcom . cur tis lb . ad vent of code . year 2 0 2 0 . day 2 3 . c ups . Cup Circle Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġsolution Ġto Ġthe Ġpuzzle Ġfor Ġ 2 0 2 0 , Ġday Ġ 2 3 , Ġpart Ġ 1 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput Path ĠThe Ġpath Ġto Ġthe Ġinput Ġfile Ġfor Ġthis Ġpuzzle . Ċ Ġ*/ Ċ fun Ġsolve ( input Path : ĠPath Ġ= ĠPaths . get (" .. ", Ġ" input ", Ġ" input . txt ")) : ĠInt Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= Ġinput Path . to File () ĊĠĠĠ Ġval Ġcup Circle Ġ= ĠC up Circle ( file . read Text ()) ĊĠĠĠ Ġrepeat ( 1 0 0 ) Ġ{ Ġcup Circle . perform Move () Ġ} ĊĠĠĠ Ġreturn Ġcup Circle . find Labels After ( 1 ). join ToString ( separator Ġ= Ġ"") Ġ{ Ġit . toString () Ġ}. toInt () Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( solve ()) Ċ } Ċ