+#!/bin/bash
+
+set -u
+
+filename="${1:-example.txt}"
+
+exec 3<"$filename"
+
+OLDIFS="$IFS"
+IFS=","
+read -u 3 -a crabs
+
+IFS=$'\n'
+crabs=($(sort -n <<<"${crabs[*]}"))
+
+count=$((${#crabs[@]}))
+total=0
+for elem in "${crabs[@]}"; do
+ ((total+=$elem))
+done
+mean=$((total / $count))
+
+fuel=0
+
+# Actual best position could be mean +- 1, so loop through them to check
+for (( tempmean=$((mean-1)); tempmean<=$((mean+1)); tempmean++ )); do
+ new_fuel=0
+ for (( a=0; a<${#crabs[@]}; a++ )); do
+ diff=$((tempmean-${crabs[$a]}))
+ diff=${diff#-}
+ if [ $diff -gt 0 ]; then
+ for (( i=0; i<=$diff; i++ )); do
+ ((new_fuel+=$i))
+ done
+ fi
+ done
+ if [ $fuel -eq 0 ] || [ $new_fuel -lt $fuel ]; then
+ fuel=$new_fuel
+ found_mean=$tempmean
+ fi
+done
+
+echo "Found mean: $found_mean"
+echo "Fuel needed: $fuel"