Day 14, Bash & C

This commit is contained in:
2020-12-23 21:05:42 +01:00
parent 250c89500f
commit 66708a79bd
12 changed files with 1261 additions and 107 deletions

31
day14/ex1.bash Executable file
View File

@@ -0,0 +1,31 @@
#!/bin/bash
#
# ex1.bash: Advent2020 game, day 14/game 1.
CMD=${0##*/}
shopt -s extglob
declare -A mem
declare -i pos
declare ORMASK ANDMASK
declare mask=""
while read -r line; do
line=${line// /}
eval "$line"
if [[ $line =~ ^mask ]]; then
ORMASK=2\#${mask//X/0}
ANDMASK=2\#${mask//X/1}
else
[[ $line =~ ^.*\[([0-9]+)\].* ]]
pos=${BASH_REMATCH[1]}
((mem[$pos] &= ANDMASK))
((mem[$pos] |= ORMASK))
fi
done
SUM=0
for i in "${!mem[@]}"; do
((SUM+=${mem[$i]}))
done
printf "%s : res=%d\n" "$CMD" "$SUM"
exit 0