File tree Expand file tree Collapse file tree 5 files changed +9
-9
lines changed Expand file tree Collapse file tree 5 files changed +9
-9
lines changed Original file line number Diff line number Diff line change 1
1
#! /usr/bin/env bash
2
2
input=${1:- 1.txt}
3
3
A=($( sort -n " $input " ) );
4
- for a in " ${A[@]} " ; do grep -wq $(( 2020 - a)) " $input " && break ; done
4
+ for a in " ${A[@]} " ; do grep -q -- ^ $(( 2020 - a)) $ " $input " && break ; done
5
5
echo " 1A: $(( 2020 - a)) + $a = $(( (2020 - a)* a)) "
6
- b=:; for a in " ${A[@]} " ; do for i in " ${A[@]} " ; do grep -wq $(( 2020 - a- i)) " $input " && b=break; $b ; done ; $b ; done
6
+ b=:; for a in " ${A[@]} " ; do for i in " ${A[@]} " ; do grep -q -- ^ $(( 2020 - a- i)) $ " $input " && b=break; $b ; done ; $b ; done
7
7
echo " 1B: $(( 2020 - a- i)) + $a + $i = $(( (2020 - a- i)* a* i)) "
Original file line number Diff line number Diff line change @@ -4,5 +4,5 @@ IFS=$'-:\ \n'
4
4
while read -r m M b c; do x=${c// [^$b]} ; (( ${# x} >= m && ${# x} <= M && ++ ans)) ; done < " ${1:- 2.txt} "
5
5
echo " 2A: $ans "
6
6
ans=0
7
- while read -r m M b c; do x=${c: m-1: 1} ; y=${c: M-1: 1} ; (( x != y && ( b == x || b == y ) && ++ ans)) ; done < " ${1:- 2.txt} "
7
+ while read m M b c; do x=${c: m-1: 1} ; y=${c: M-1: 1} ; [[ $ x != $y ]] && [[ $ b == $ x || $ b == $y ]] && (( ++ ans)) ; done < ${1:- 2.txt}
8
8
echo " 2B: $ans "
Original file line number Diff line number Diff line change @@ -4,5 +4,5 @@ for i in "${A[@]}"; do x+=${i:k:1}; ((k=(k+j)%l)); done; x=${x//\.}
4
4
echo " 3A: ${# x} "
5
5
idx2=$( seq 0 2 $(( ${# A[@]} - 1 )) )
6
6
for j in 1 3 5 7; do x=" " ; k=0; for i in " ${A[@]} " ; do x+=${i: k: 1} ; (( k= (k+ j)% l)) ; done ; x=${x// \. } ; total+=" *${# x} " ; done
7
- x=" " ; k=0; for i in $idx2 ; do x+=${A[i]: k: 1} ; (( k= (k+ j )% l)) ; done ; x=${x// \. } ; total+=" *${# x} "
7
+ x=" " ; k=0; for i in $idx2 ; do x+=${A[i]: k: 1} ; (( k= (k+ 2 )% l)) ; done ; x=${x// \. } ; total+=" *${# x} "
8
8
echo " 3B: ${total: 2} = $(( total)) "
Original file line number Diff line number Diff line change @@ -20,5 +20,5 @@ while [ "$sum" != "${A[i]}" ]; do
20
20
fi
21
21
[[ $j -ge $i ]] && echo NOT FOUND && break
22
22
done
23
- B=($( printf " %s\n" " ${A[*]: k: j-k+1 } " | sort -n) )
23
+ B=($( printf " %s\n" " ${A[*]: k: j-k} " | sort -n) )
24
24
echo " 9B: $k ..$j = $(( B[0 ]+ B[- 1 ])) "
Original file line number Diff line number Diff line change 2
2
A=($( tr " L" " X" < " ${1:- 11.txt} " ) )
3
3
B=(.${A// ?/ .} .); for i in " ${A[@]} " ; do B+=(.$i .); done ; B+=($B ); C=(" ${B[@]} " );
4
4
J=$( seq 1 ${# A} ) ; I=$( seq 1 ${# A[@]} ) ; CHANGE=($I ); round=0
5
- while [ ${# change } != 0 ]; do
5
+ while [ ${# I } != 0 ]; do
6
6
CHANGE=(); l=
7
7
for i in $I ; do
8
8
for j in $J ; do
@@ -14,13 +14,13 @@ while [ ${#change} != 0 ]; do
14
14
fi
15
15
l+=$x
16
16
done
17
- [ " ${B[i]} " != .$l . ] && CHANGE+=( $(( i- 1 )) $i $(( i+ 1 )) )
17
+ [ " ${B[i]} " != .$l . ] && CHANGE[ i-1]=1 && CHANGE[i]=1 && CHANGE[ i+1]=1
18
18
C[i]=.$l .; l=
19
19
done
20
20
B=(" ${C[@]} " )
21
- I=$( printf " %s\n " " ${ CHANGE[@]}" | sort -u )
21
+ I=${ ! CHANGE[@]}
22
22
(( ++ round== 1 )) && B=(" ${C[@]// X/ x} " )
23
- # ((round%10)) || echo "$round: $((${#change [@]}/3)) "
23
+ # ((round%10)) || echo "$round: ${#CHANGE [@]}"
24
24
done
25
25
ans=" ${B[*]} " ; ans=${ans// [ L.]}
26
26
echo " 11A: ${# ans} "
You can’t perform that action at this time.
0 commit comments