33 lines
517 B
Bash
33 lines
517 B
Bash
|
#!/bin/bash
|
||
|
arr=()
|
||
|
gamma=''
|
||
|
epsilon=''
|
||
|
|
||
|
while read line; do
|
||
|
arr+=("$line")
|
||
|
done
|
||
|
|
||
|
for ((j=0; j<${#arr[0]}; j++)); do
|
||
|
zeroes=0
|
||
|
ones=0
|
||
|
for ((i=0; i<${#arr[@]}; i++)); do
|
||
|
if [[ "$(cut -c $((j+1)) <<< "${arr[$i]}")" == *"0"* ]]; then # lazy
|
||
|
zeroes=$((zeroes+1))
|
||
|
else
|
||
|
ones=$((ones+1))
|
||
|
fi
|
||
|
done
|
||
|
if [[ $zeroes -gt $ones ]]; then
|
||
|
gamma=${gamma}0
|
||
|
epsilon=${epsilon}1
|
||
|
else
|
||
|
gamma=${gamma}1
|
||
|
epsilon=${epsilon}0
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
gamma_=$((2#$gamma))
|
||
|
epsilon_=$((2#$epsilon))
|
||
|
|
||
|
echo "result: $((gamma_*epsilon_))"
|