32 lines
675 B
Python
32 lines
675 B
Python
import numpy as np
|
|
|
|
|
|
def part_one(crabs: np.ndarray):
|
|
|
|
smallest_diff = np.inf
|
|
|
|
for i in range(1, crabs.max()):
|
|
cost = abs(crabs - i).sum()
|
|
smallest_diff = min(smallest_diff, cost)
|
|
|
|
return smallest_diff
|
|
|
|
|
|
def part_two(crabs):
|
|
smallest_diff = np.inf
|
|
|
|
for i in range(1, crabs.max()):
|
|
diffs = abs(crabs - i) + 1
|
|
|
|
cost = sum([np.arange(diff, dtype=np.int64).sum() for diff in diffs])
|
|
|
|
smallest_diff = min(smallest_diff, cost)
|
|
|
|
return smallest_diff
|
|
|
|
|
|
if __name__ == "__main__":
|
|
crabs = np.array([int(x) for x in input().split(",")])
|
|
print("Part One:", part_one(crabs))
|
|
print("Part Two:", part_two(crabs))
|