| ofs | hex dump | ascii |
|---|
| 0000 | 2a 2a 54 49 39 32 2a 2a 01 00 64 61 79 34 00 00 00 00 50 61 72 74 32 20 44 61 79 34 20 73 3a 20 | **TI92**..day4....Part2.Day4.s:. |
| 0020 | 70 61 72 73 65 64 20 69 6e 70 75 74 2c 20 77 3a 20 69 6e 70 75 74 20 77 69 64 01 00 52 00 00 00 | parsed.input,.w:.input.wid..R... |
| 0040 | 70 61 72 74 32 00 00 00 12 00 00 00 f4 05 00 00 a5 5a 00 00 00 00 05 9a 28 73 2c 77 29 0d 46 75 | part2............Z......(s,w).Fu |
| 0060 | 6e 63 0d 4c 6f 63 61 6c 20 68 2c 69 2c 6a 2c 6b 2c 6c 2c 63 75 72 72 2c 70 72 65 76 73 2c 70 63 | nc.Local.h,i,j,k,l,curr,prevs,pc |
| 0080 | 2c 72 65 73 75 6c 74 2c 73 74 61 63 6b 2c 73 74 6e 75 6d 0d 0d 6e 65 77 4d 61 74 28 32 2c 32 35 | ,result,stack,stnum..newMat(2,25 |
| 00a0 | 30 30 29 16 73 74 61 63 6b 0d 30 16 73 74 6e 75 6d 0d 30 16 72 65 73 75 6c 74 0d 64 69 6d 28 73 | 00).stack.0.stnum.0.result.dim(s |
| 00c0 | 29 16 68 0d 49 66 20 68 3c 31 20 54 68 65 6e 0d 20 52 65 74 75 72 6e 20 72 65 73 75 6c 74 0d 45 | ).h.If.h<1.Then..Return.result.E |
| 00e0 | 6c 73 65 49 66 20 68 3d 31 20 54 68 65 6e 0d 20 63 6e 74 62 69 74 73 28 73 5b 31 5d 29 16 72 65 | lseIf.h=1.Then..cntbits(s[1]).re |
| 0100 | 73 75 6c 74 5b 64 69 6d 28 72 65 73 75 6c 74 29 5d 0d 20 52 65 74 75 72 6e 20 72 65 73 75 6c 74 | sult[dim(result)]..Return.result |
| 0120 | 0d 45 6e 64 49 66 0d 0d 46 6f 72 20 69 2c 31 2c 77 0d 20 6e 65 77 4c 69 73 74 28 33 29 16 70 72 | .EndIf..For.i,1,w..newList(3).pr |
| 0140 | 65 76 73 0d 20 66 61 6c 73 65 16 70 63 0d 20 46 6f 72 20 6a 2c 31 2c 68 0d 20 20 67 65 74 62 69 | evs..false.pc..For.j,1,h...getbi |
| 0160 | 74 73 28 73 5b 6a 5d 2c 69 2d 31 2c 33 29 16 63 75 72 72 0d 20 20 63 6e 74 33 62 69 74 73 28 63 | ts(s[j],i-1,3).curr...cnt3bits(c |
| 0180 | 75 72 72 29 16 70 72 65 76 73 5b 6d 6f 64 28 6a 2c 33 29 2b 31 5d 0d 20 20 a9 27 61 6e 64 27 20 | urr).prevs[mod(j,3)+1]....'and'. |
| 01a0 | 69 73 20 6e 6f 74 20 73 68 6f 72 74 20 63 69 72 63 75 69 74 69 6e 67 0d 20 20 49 66 20 70 63 20 | is.not.short.circuiting...If.pc. |
| 01c0 | 54 68 65 6e 0d 20 20 20 49 66 20 73 75 6d 28 70 72 65 76 73 29 3c 35 20 54 68 65 6e 0d 20 20 20 | Then....If.sum(prevs)<5.Then.... |
| 01e0 | 20 72 65 73 75 6c 74 2b 31 16 72 65 73 75 6c 74 0d 20 20 20 20 7a 65 72 6f 62 69 74 28 73 5b 6a | .result+1.result.....zerobit(s[j |
| 0200 | 2d 31 5d 2c 69 29 16 73 5b 6a 2d 31 5d 0d 20 20 20 20 73 74 6e 75 6d 2b 31 16 73 74 6e 75 6d 0d | -1],i).s[j-1].....stnum+1.stnum. |
| 0220 | 20 20 20 20 6a 2d 31 16 73 74 61 63 6b 5b 31 2c 73 74 6e 75 6d 5d 0d 20 20 20 20 69 16 73 74 61 | ....j-1.stack[1,stnum].....i.sta |
| 0240 | 63 6b 5b 32 2c 73 74 6e 75 6d 5d 0d 20 20 20 45 6e 64 49 66 0d 20 20 45 6e 64 49 66 0d 20 20 63 | ck[2,stnum]....EndIf...EndIf...c |
| 0260 | 75 72 72 3d 32 20 6f 72 20 63 75 72 72 3d 33 20 6f 72 20 63 75 72 72 3d 36 20 6f 72 20 63 75 72 | urr=2.or.curr=3.or.curr=6.or.cur |
| 0280 | 72 3d 37 16 70 63 0d 20 45 6e 64 46 6f 72 0d 20 a9 20 6c 61 73 74 20 6c 69 6e 65 0d 20 49 66 20 | r=7.pc..EndFor....last.line..If. |
| 02a0 | 70 63 20 54 68 65 6e 0d 20 20 30 16 70 72 65 76 73 5b 6d 6f 64 28 68 2b 31 2c 33 29 2b 31 5d 0d | pc.Then...0.prevs[mod(h+1,3)+1]. |
| 02c0 | 20 20 49 66 20 73 75 6d 28 70 72 65 76 73 29 3c 35 20 54 68 65 6e 0d 20 20 20 72 65 73 75 6c 74 | ..If.sum(prevs)<5.Then....result |
| 02e0 | 2b 31 16 72 65 73 75 6c 74 0d 20 20 20 7a 65 72 6f 62 69 74 28 73 5b 68 5d 2c 69 29 16 73 5b 68 | +1.result....zerobit(s[h],i).s[h |
| 0300 | 5d 0d 20 20 20 73 74 6e 75 6d 2b 31 16 73 74 6e 75 6d 0d 20 20 20 68 16 73 74 61 63 6b 5b 31 2c | ]....stnum+1.stnum....h.stack[1, |
| 0320 | 73 74 6e 75 6d 5d 0d 20 20 20 69 16 73 74 61 63 6b 5b 32 2c 73 74 6e 75 6d 5d 0d 20 20 45 6e 64 | stnum]....i.stack[2,stnum]...End |
| 0340 | 49 66 0d 20 45 6e 64 49 66 0d 45 6e 64 46 6f 72 0d 0d 0d 57 68 69 6c 65 20 73 74 6e 75 6d 3e 30 | If..EndIf.EndFor...While.stnum>0 |
| 0360 | 0d 20 73 74 61 63 6b 5b 31 2c 73 74 6e 75 6d 5d 16 6c 0d 20 73 74 61 63 6b 5b 32 2c 73 74 6e 75 | ..stack[1,stnum].l..stack[2,stnu |
| 0380 | 6d 5d 16 6b 0d 20 73 74 6e 75 6d 2d 31 16 73 74 6e 75 6d 0d 20 46 6f 72 20 6a 2c 6d 61 78 28 31 | m].k..stnum-1.stnum..For.j,max(1 |
| 03a0 | 2c 6c 2d 31 29 2c 6d 69 6e 28 68 2c 6c 2b 31 29 0d 20 20 46 6f 72 20 69 2c 6d 61 78 28 31 2c 6b | ,l-1),min(h,l+1)...For.i,max(1,k |
| 03c0 | 2d 31 29 2c 6d 69 6e 28 77 2c 6b 2b 31 29 0d 20 20 20 49 66 20 69 9d 6b 20 6f 72 20 6a 9d 6c 20 | -1),min(w,k+1)....If.i.k.or.j.l. |
| 03e0 | 54 68 65 6e 0d 20 20 20 20 67 65 74 62 69 74 73 28 73 5b 6a 5d 2c 69 2d 31 2c 33 29 16 63 75 72 | Then.....getbits(s[j],i-1,3).cur |
| 0400 | 72 0d 20 20 20 20 49 66 20 63 75 72 72 3d 32 20 6f 72 20 63 75 72 72 3d 33 20 6f 72 20 63 75 72 | r.....If.curr=2.or.curr=3.or.cur |
| 0420 | 72 9e 36 20 54 68 65 6e 0d 20 20 20 20 20 63 6e 74 33 62 69 74 73 28 63 75 72 72 29 16 70 72 65 | r.6.Then......cnt3bits(curr).pre |
| 0440 | 76 73 5b 31 5d 0d 20 20 20 20 20 49 66 20 6a 3e 31 20 54 68 65 6e 0d 20 20 20 20 20 20 63 6e 74 | vs[1]......If.j>1.Then.......cnt |
| 0460 | 33 62 69 74 73 28 67 65 74 62 69 74 73 28 73 5b 6a 2d 31 5d 2c 69 2d 31 2c 33 29 29 16 70 72 65 | 3bits(getbits(s[j-1],i-1,3)).pre |
| 0480 | 76 73 5b 32 5d 0d 20 20 20 20 20 45 6c 73 65 0d 20 20 20 20 20 20 30 16 70 72 65 76 73 5b 32 5d | vs[2]......Else.......0.prevs[2] |
| 04a0 | 0d 20 20 20 20 20 45 6e 64 49 66 0d 20 20 20 20 20 49 66 20 6a 3c 68 20 54 68 65 6e 0d 20 20 20 | ......EndIf......If.j<h.Then.... |
| 04c0 | 20 20 20 63 6e 74 33 62 69 74 73 28 67 65 74 62 69 74 73 28 73 5b 6a 2b 31 5d 2c 69 2d 31 2c 33 | ...cnt3bits(getbits(s[j+1],i-1,3 |
| 04e0 | 29 29 16 70 72 65 76 73 5b 33 5d 0d 20 20 20 20 20 45 6c 73 65 0d 20 20 20 20 20 20 30 16 70 72 | )).prevs[3]......Else.......0.pr |
| 0500 | 65 76 73 5b 33 5d 0d 20 20 20 20 20 45 6e 64 49 66 0d 20 20 20 20 20 49 66 20 73 75 6d 28 70 72 | evs[3]......EndIf......If.sum(pr |
| 0520 | 65 76 73 29 3c 35 20 54 68 65 6e 0d 20 20 20 20 20 20 72 65 73 75 6c 74 2b 31 16 72 65 73 75 6c | evs)<5.Then.......result+1.resul |
| 0540 | 74 0d 20 20 20 20 20 20 7a 65 72 6f 62 69 74 28 73 5b 6a 5d 2c 69 29 16 73 5b 6a 5d 0d 20 20 20 | t.......zerobit(s[j],i).s[j].... |
| 0560 | 20 20 20 73 74 6e 75 6d 2b 31 16 73 74 6e 75 6d 0d 20 20 20 20 20 20 6a 16 73 74 61 63 6b 5b 31 | ...stnum+1.stnum.......j.stack[1 |
| 0580 | 2c 73 74 6e 75 6d 5d 0d 20 20 20 20 20 20 69 16 73 74 61 63 6b 5b 32 2c 73 74 6e 75 6d 5d 0d 20 | ,stnum].......i.stack[2,stnum].. |
| 05a0 | 20 20 20 20 45 6e 64 49 66 0d 20 20 20 20 45 6e 64 49 66 0d 20 20 20 45 6e 64 49 66 0d 20 20 45 | ....EndIf.....EndIf....EndIf...E |
| 05c0 | 6e 64 46 6f 72 0d 20 45 6e 64 46 6f 72 0d 45 6e 64 57 68 69 6c 65 0d 0d 72 65 73 75 6c 74 0d 0d | ndFor..EndFor.EndWhile..result.. |
| 05e0 | 45 6e 64 46 75 6e 63 0d 00 00 00 19 e4 e5 00 00 08 dc df ae | EndFunc............. |