23 lines
559 B
D
23 lines
559 B
D
module day7.part1;
|
|
|
|
import std.stdio;
|
|
import std.math;
|
|
import std.algorithm;
|
|
import util.fileutils;
|
|
|
|
int getFuelCost(int[] crabs, int pos) {
|
|
return crabs.map!((crab) {
|
|
int distance = abs(pos - crab);
|
|
return (distance * (distance + 1)) / 2;
|
|
}).sum();
|
|
}
|
|
|
|
void crabFuel() {
|
|
int[] crabs = readInts("source/day7/input.txt", ",");
|
|
int minCost = 1_000_000_000;
|
|
foreach (pos; crabs.minElement .. crabs.maxElement) {
|
|
int c = getFuelCost(crabs, pos);
|
|
if (c < minCost) minCost = c;
|
|
}
|
|
writefln("%d", minCost);
|
|
} |