package Ġcom . headless ide as . ad vent of code . de cember 1 1 Ċ Ċ import Ġcom . headless ide as . ad vent of code . utils . readFile Ċ import Ġkotlin . math . max Ċ Ċ fun Ġtraverse Hex Grid ( path : ĠList < String >): ĠPair < Int , ĠInt > Ġ{ ĊĠĠĠ Ġvar Ġx Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġy Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġf ur the st Ġ= Ġ 0 ĊĊĠĠĠ Ġfor Ġ( step Ġin Ġpath ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( step ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" n " Ġ-> Ġy ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġy -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" nw " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ne " Ġ-> Ġx ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sw " Ġ-> Ġx -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" se " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġf ur the st Ġ= Ġmax ( f ur the st , Ġhex Distance ( x , Ġy )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln (" Part Ġ 2 : Ġ$ f ur the st ") ĊĊĠĠĠ Ġreturn Ġx Ġto Ġy Ċ } Ċ Ċ fun Ġhex Distance ( x : ĠInt , Ġy : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġz Ġ= Ġ- x Ġ- Ġy ĊĠĠĠ Ġreturn Ġmax ( max ( x , Ġy ), Ġz ) Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġpath Ġ= ĠreadFile (" 1 1 . dec . txt "). join ToString (" "). split (",") ĊĊĠĠĠ Ġval Ġ( x , Ġy ) Ġ= Ġtraverse Hex Grid ( path ) ĊĠĠĠ Ġprintln (" Part Ġ 1 : Ġ${ hex Distance ( x , Ġy )} ") Ċ }