27 lines
675 B
Nim
27 lines
675 B
Nim
import
|
|
../../adventofcode,
|
|
options,
|
|
sequtils,
|
|
strformat,
|
|
strutils
|
|
|
|
let input = adventofcode.getInput(2021, 7)[0 .. ^2]
|
|
#let input = "16,1,2,0,4,2,7,1,2,14" # Example given
|
|
let crabs = input.split(",").mapIt(it.parseInt())
|
|
let minPos = min(crabs)
|
|
let maxPos = max(crabs)
|
|
|
|
var bestPosResult = none int
|
|
var bestFuelResult = none int
|
|
|
|
for pos in minPos .. maxPos:
|
|
var fuel = 0
|
|
for crab in crabs:
|
|
fuel += max(crab, pos) - min(crab, pos)
|
|
|
|
if bestFuelResult.isNone() or fuel < bestFuelResult.get():
|
|
bestPosResult = some pos
|
|
bestFuelResult = some fuel
|
|
|
|
echo fmt"Position : {bestPosResult.get()}"
|
|
echo fmt"Fuel | Answer: {bestFuelResult.get()}" |