package Ġio . github . aar jav p . a oc . day 0 7 Ċ Ċ import Ġio . github . aar jav p . a oc . read From Classpath Ċ import Ġjava . io . BufferedReader Ċ import Ġkotlin . math . abs Ċ Ċ class ĠDay 0 7 Ġ{ ĊĊĠĠĠ Ġfun Ġparse Input ( input : ĠBufferedReader ): ĠSequence < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinput . readLine (). split To Sequence (',' ). map Ġ{ Ġit . toInt () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Min Fuel Used ( positions : ĠSequence < Int >, Ġdistance To Fuel : Ġ( Int ) Ġ-> ĠInt Ġ= Ġ{ Ġit Ġ}): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsorted Ġ= Ġpositions . to Mutable List (). apply Ġ{ Ġsort () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbr ute force Ġ= Ġ( sorted . first () .. sorted . last ()). min Of Ġ{ Ġcalculate Fuel ( it , Ġsorted , Ġdistance To Fuel ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbr ute force ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalculate Fuel ( from : ĠInt , Ġpositions : ĠList < Int >, Ġdistance To Fuel : Ġ( Int ) Ġ-> ĠInt Ġ= Ġ{ Ġit Ġ}): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpositions . sum Of Ġ{ Ġdistance To Fuel ( abs ( it Ġ- Ġfrom )) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġsolution Ġ= ĠDay 0 7 () ĊĠĠĠ Ġread From Classpath (" Day 0 7 . txt "). use Ġ{ Ġinput Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġinit Ġ= Ġsolution . parse Input ( input ) ĊĠĠĠĠĠĠĠ Ġval Ġpart 1 Ġ= Ġsolution . find Min Fuel Used ( init ) ĊĠĠĠĠĠĠĠ Ġprintln ( part 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġpart 2 Ġ= Ġsolution . find Min Fuel Used ( init ) Ġ{ Ġit Ġ* Ġ( it Ġ+ Ġ 1 ) Ġ/ Ġ 2 Ġ} ĊĠĠĠĠĠĠĠ Ġprintln ( part 2 ) ĊĠĠĠ Ġ} Ċ } Ċ