File tree Expand file tree Collapse file tree 2 files changed +21
-28
lines changed Expand file tree Collapse file tree 2 files changed +21
-28
lines changed Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
- A= $( < " ${1 :- 6.txt} " )
3
- A= ${A // ,}
2
+ declare -i A=(0 0 0 0 0 0 0 0 0) n=0
3
+ while read freq age ; do A[age]= $freq ; done < <( grep -o [0-9] " ${1 :- 6.txt} " | sort | uniq -c )
4
4
solve () {
5
- for (( ; n < $1 ; ++ n)) ; do
6
- # births=${A//[^0]}; births=${births//0/8}
7
- births=$( tr -cd 0 <<< " $A" | tr 0 8)
8
- B=$( echo -n " $A " | tr 876543210 765432106 )
9
- A[i]=" ${B[i]}${births} "
5
+ while (( n < $1 )) ; do
6
+ i=$(( n++% 9 ))
7
+ A[i-2]+=${A[i]}
10
8
done
9
+ sum=0; for i in " ${! A[@]} " ; do (( sum+= A[i])) ; done
11
10
}
12
- n=0
13
11
solve 80
14
- echo " 6A: ${ # A} "
15
- # solve 256
16
- # echo "6B: ${#A} "
12
+ echo " 6A: $sum "
13
+ solve 256
14
+ echo " 6B: $sum "
Original file line number Diff line number Diff line change 1
- #! /usr/bin/env bash
2
- A=($( tr , ' \n' < " ${1:- 7.txt} " | sort -n ) )
1
+ #! /bin/bash
2
+ input=$( < ${1:- 7.txt} )
3
+ A=($( echo -e " ${input// ,/ \\ n} " | sort -n) )
3
4
MIN=(99999999 0) MIN2=(9999999999999 0)
4
5
N=${# A[@]}
5
- for (( i= A[N/ 4 ]; i< A[- N/ 4 ]; i++ )) ; do
6
- n=' ' ; for k in ${A[@]} ; do n+=+$(( k- i)) ; done ;
7
- sum=$(( ${n// -} )) # lazy abs()
8
- (( MIN> sum)) && MIN=($sum $i )
6
+ avg=$(( (${input// ,/ +} )/ N))
7
+ n=" " ; for k in ${A[@]} ; do n+=+$(( k- A[N/ 2 ])) ; done
8
+ sum=$(( ${n// -} )) # lazy abs()
9
+ echo " 7A: $sum "
10
+ declare -i sum2=0
11
+ for k in ${A[@]} ; do
12
+ dist=$(( k- avg)) ; dist=${dist/ -}
13
+ sum2+=$(( dist* (dist+ 1 )/ 2 ))
9
14
done
10
- echo " 7A: ${MIN[0]} "
11
-
12
- for (( i= A[N/ 4 ]; i< A[- N/ 4 ]; i++ )) ; do
13
- declare -i sum2=0;
14
- for k in ${A[@]} ; do
15
- dist=$(( k- i)) ; dist=${dist/ -}
16
- sum2+=$(( dist* (dist+ 1 )/ 2 ))
17
- done ;
18
- (( MIN2 > sum2 )) && MIN2=($sum2 $i )
19
- done
20
- echo " 7B: ${MIN2[0]} "
15
+ echo " 7B: $sum2 "
You can’t perform that action at this time.
0 commit comments