about summary refs log tree commit diff
path: root/day08.ijs
blob: c3bbeef0ef6d3b0199c163dab6100375624c21fd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
load 'aoc.ijs'
p =: |:({."1 r),:v =. ". each 1 }"1 r =. cutopen every lines 'day08'

step =: 4 : 0
'ip acc' =. y
if. ip >: # x do.
  (#x),acc
else.
  'o n' =. ip { x
  (>:ip + (o -: 'jmp')*<:n),acc + n * (o -: 'acc')
end.
)

([: }. ] {~ [: (~: i. 0:) {."1) p&step^:(<1000) 0 0   NB. 1451

patch =: ] 0}~ [: ((,|.)'jmp';'nop')&stringreplace&.> 0 { ]
rs =: 3 : '(( p (y }~) (patch y { p) )&step^:1000) 0 0'
{: rp {~ (#p) i.~ {."1 rp =: rs"0 i. #p  NB.  1160