Paste: aoc 22-12 wrong
        
	
	
	
		| Author:  | razetime | 
		| Mode:  | lua | 
		| Date:  | Mon, 12 Dec 2022 06:00:10 | 
	
	Plain Text |
	
	l:eval[read["../../lib.lil"]].vars
i:"\n" split -1 drop read["../inp/12"]
i:each x in i "%a" parse x end
start:0
en:0
each x in range i
  each y in range i[0]
    if i[x][y]=83 start:x,y i[x][y]:97 end
    if i[x][y]=69 en:x,y    i[x][y]:122 end
  end
end
q:(list start,0)
prev:() dict ()
vis:each x in i
  each y in x 0 end
end
show[start]
show[en]
while q
# each x in range 2
  curr:2 take first q
  if curr~en
    show[first q]
    exit[]
  end
  score:last first q
  vis[curr[0]][curr[1]]:1
  q:1 drop q
  each x in (list curr+0,1),(list curr+1,0),(list curr+0,-1),(list curr+-1,0)
    d:i[x[0]][x[1]]-i[curr[0]][curr[1]]
    if (!!i[x[0]][x[1]])&(d<2)&(d>-1)&!vis[x[0]][x[1]]
      q[count q]:x,score+1
      # prev[x]:curr
    end
  end
  # show[sum l.absv[curr-en]]
  # show[vis]
  # q:l.uniq[q]
end
	
	
		New Annotation