blob: 441efb2ed26c971c9b61e20a81e922364e382775 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/bin/bash
# USAGE: ./sol.sh (n: top elves)
NUM_ELVES=${1:-3}
declare -a ELVES=()
for (( i = 0; i<$NUM_ELVES; i++))
do
ELVES+=(0)
done
add_to_elves () {
local max=$1
for (( i = 0; i<${NUM_ELVES}; i++));
do
local tmp="${ELVES[$i]}";
if [[ $max -ge $tmp ]];
then
ELVES[$i]=$max
max=$tmp
fi
done
}
CURRENT_ELF=0
while read -r line
do
if [[ -z "$line" ]];
then
add_to_elves $CURRENT_ELF
CURRENT_ELF=0
else
CURRENT_ELF=$((CURRENT_ELF+line))
fi
done < input
echo "MAX ELF = ${ELVES[0]}"
echo "sum(TOP $NUM_ELVES ELVES) = $(printf "%s\n" $(echo "${ELVES[*]}") | paste -sd+ - | bc)"
|