Files
advent-of-code/2020/day22/ex1.bash

40 lines
820 B
Bash
Executable File

#!/bin/bash
#
# ex1.bash: Advent2020 game, day 22/game 1.
CMD=${0##*/}
shopt -s extglob
set -o noglob
declare -a cards=() CARDS1=() CARDS2=()
declare -i count=-1
while read -r line; do
case ${line:0:1} in
P*)
((count++))
;;
[1-9]*)
cards[$count]+=" $line"
;;
esac
done
# shellcheck disable=SC2206
CARDS1=(${cards[0]}) && CARDS2=(${cards[1]})
while ((${#CARDS1[@]} && ${#CARDS2[@]})); do
# shellcheck disable=SC2128
((CARDS1 > CARDS2)) && CARDS1+=("$CARDS1" "$CARDS2") || CARDS2+=("$CARDS2" "$CARDS1")
CARDS1=("${CARDS1[@]:1}")
CARDS2=("${CARDS2[@]:1}")
done
declare -i n=$((${#CARDS1[@]}+${#CARDS2[@]})) res=0 i
for i in "${CARDS1[@]}" "${CARDS2[@]}"; do
((res+=n*i, n--))
done
printf "%s: res=%d\n" "$CMD" "$res"
exit 0