summaryrefslogtreecommitdiff
path: root/day4/part1.TXT
blob: 31cdfdfbee05b7606f29646122be0bc7c7c30abe (plain) (blame)
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
41
42
43
44
\START92\
\COMMENT=Part1 Day4 s: parsed input, w: input width
\NAME=part1
\FILE=day4.part1.92f
(s,w)
Func
Local h,i,j,curr,prevs,pc,result

dim(s)\->\h
If h<1 Then
 Return 0
ElseIf h=1 Then
 Return cntbits(s[1])
EndIf

0\->\result
For i,1,w
 newList(3)\->\prevs
 false\->\pc
 For j,1,h
  getbits(s[j],i-1,3)\->\curr
  cnt3bits(curr)\->\prevs[mod(j,3)+1]
  \(C)\'and' is not short circuiting
  If pc Then
   If sum(prevs)<5 Then
    result+1\->\result
   EndIf
  EndIf
  curr=2 or curr=3 or curr=6 or curr=7\->\pc
 EndFor
 \(C)\ last line
 If pc Then
  0\->\prevs[mod(h+1,3)+1]
  If sum(prevs)<5 Then
   result+1\->\result
  EndIf
 EndIf
EndFor

result

EndFunc

\STOP92\