#!/usr/bin/env bash unset PATH; readonly PATH source ./utils/main.sh p1() { local input="$1" result=0 while [[ -n "$input" ]]; do if [[ "$input" =~ mul\(([0-9]{1,3}),([0-9]{1,3})\) ]]; then result="$((result + (BASH_REMATCH[1] * BASH_REMATCH[2])))" input="${input#*"${BASH_REMATCH[0]}"}" else input='' fi done printf '%d' "$result" } p2() { local input="$1" result=0 do=true while [[ -n "$input" ]]; do if [[ "$input" =~ mul\(([0-9]{1,3}),([0-9]{1,3})\)|do\(\)|don\'t\(\) ]]; then case "${BASH_REMATCH[0]}" in do\(\)) do=true;; don\'t\(\)) do=false;; *) [[ "$do" == true ]] && result="$((result + (BASH_REMATCH[1] * BASH_REMATCH[2])))";; esac input="${input#*"${BASH_REMATCH[0]}"}" else input='' fi done printf '%d' "$result" } main "$@"