Working part 1

This commit is contained in:
2024-12-10 23:25:35 +08:00
parent eff5810fe3
commit e0d3bcfe9e

View File

@ -73,36 +73,40 @@ get_nine () {
COMBINATIONS+=( "$INDEX" )
fi
fi
printf "Get: %s \n" "$GET_NUM" >&2
printf "trail: %s \n" "$TRAIL" >&2
printf "neighbors found : %s \n" "${COMBINATIONS[@]}" >&2
#PRINT1=$( printf "%s " "$TRAIL" )
#PRINT2=$( printf "%s " "${COMBINATIONS[@]}" )
#printf "trail: %s, Get: %s, combinations: %s \n" "$PRINT1" "$GET_NUM" "$PRINT2" >&2
# Check if the end has been reached
# or no matching neighbors
if [[ $GET_NUM -eq 9 ]] || [[ ${#COMBINATIONS[@]} -eq 0 ]]
then
# Exit recursion
printf "%s" "${#COMBINATIONS[@]}"
printf "%s " "${COMBINATIONS[@]}"
#printf "%s " "${COMBINATIONS[@]}" >&2
return
fi
# Recurse
TOTAL=0
NEXT_NUM=$(( GET_NUM+=1 ))
for INDEX in "${COMBINATIONS[@]}"
do
COUNT=$(
get_nine \
"$NEXT_NUM" \
"$( get_valid_neighbors "$INDEX" )" \
"$INDEX"
)
(( TOTAL+=COUNT ))
done
printf "%s" "$TOTAL"
read -r -a RESULTS <<< "$(
for INDEX in "${COMBINATIONS[@]}"
do
RESULT=$(
get_nine \
"$NEXT_NUM" \
"$( get_valid_directions "$INDEX" )" \
"$INDEX"
)
printf "%s " "$RESULT"
done
)"
printf "%s " "${RESULTS[@]}"
#printf "%s " "${RESULTS[@]}" >&2
#printf "\n" >&2
}
get_valid_neighbors () {
get_valid_directions () {
IDX=$1
NUM=1
@ -134,14 +138,14 @@ get_valid_neighbors () {
printf "%s" "$NUM"
}
PATH_COUNT=0
ITER=999999
ITER=9999
TOTAL=0
for TRAILHEAD in "${TRAILHEADS[@]}"
do
COUNT=$( get_nine "1" "$( get_valid_neighbors "$TRAILHEAD" )" "$TRAILHEAD" )
(( PATH_COUNT+=COUNT ))
read -r -a PEAKS <<< "$( get_nine "1" "$( get_valid_directions "$TRAILHEAD" )" "$TRAILHEAD" )"
COUNT=$( printf "%s " "${PEAKS[@]}" | grep -Eo '[0-9]*' | sort -u | wc -l )
(( TOTAL+=COUNT ))
(( ITER-- ))
if [[ $ITER -eq 0 ]] ;then break; fi
done
printf "%s\n" "$PATH_COUNT"
printf "%s\n" "$TOTAL"