64 lines
744 B
Bash
Executable File

#!/usr/bin/env bash
function lowi() {
low=${#1}
i=0
li=0
shift
for l in "$@"; do
let i++
if [ ${#l} -lt $low ]; then
li=$i
low=${#l}
fi
done
echo $li
}
declare -A P
p=0
for i in {a..z} {A..Z}; do
let p++
P[$i]=$p
done
sum=0
while read a; read b; read c; do
bags=( $a $b $c )
li=$(lowi $a $b $c)
x=${bags[li]}
y=${bags[$(( (li + 1) % 3 ))]}
z=${bags[$(( (li + 2) % 3 ))]}
c1=''
for i in `seq 0 $(( ${#bags[$li]} - 1 ))`; do
if [[ $y == *${x:$i:1}* ]]; then
c1="${c1}${x:$i:1}"
fi
done
for i in `seq 0 $(( ${#c1} - 1 ))`; do
if [[ $z == *${c1:$i:1}* ]]; then
c=${c1:$i:1}
break
fi
done
let sum+=P[$c]
c=''
done
echo $sum