Files
advent-of-code-2021/22/01.sh
2021-12-22 12:50:20 +01:00

46 lines
825 B
Bash
Executable File

#!/bin/bash
declare -A cores
for ((i=-50;i<=50;i++)); do
for ((j=-50;j<=50;j++)); do
for ((k=-50;k<=50;k++)); do
cores[$i,$j,$k]=0
done
done
done
while read line; do
if [[ ${line:0:2} == "on" ]]; then
new_value=1
else
new_value=0
fi
t=${line#*x=}
t=${t%%,*}
x_1=${t%\.\.*}
x_2=${t#*\.\.}
t=${line#*y=}
t=${t%%,*}
y_1=${t%\.\.*}
y_2=${t#*\.\.}
t=${line#*z=}
t=${t%%,*}
z_1=${t%\.\.*}
z_2=${t#*\.\.}
if [ $x_1 -lt -50 ] || [ $x_2 -gt 50 ] || [ $y_1 -lt -50 ] || [ $y_2 -gt 50 ] \
|| [ $z_1 -lt -50 ] || [ $z_2 -gt 50 ]; then
continue
fi
for ((x=x_1;x<=x_2;x++)); do
for ((y=y_1;y<=y_2;y++)); do
for ((z=z_1;z<=z_2;z++)); do
cores[$x,$y,$z]=$new_value
done
done
done
done
echo $(( $(sed 's/ /+/g' <<< ${cores[@]}) ))