64 lines
744 B
Bash
Executable File
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
|
|
|
|
|