aoc2021/d10golf.hs
2021-12-10 17:35:59 +01:00

9 lines
No EOL
300 B
Haskell

import Data.List
e=fromEnum
n%(h:t)|h`elem`"([{<"=(h:n)%t|i:s<-n,abs(e h-e i)<3=s%t|let=(0,a[h])
n%_=(foldl((+).(5*))0$b<$>n,0)
a")"=3;a"]"=57;a"}"=1197;a">"=25137;a _=0
b '('=1;b '['=2;b '{'=3;b _=4
m l=l!!(length l`div`2)
c(x,y)=(m$filter(>0)$sort x,sum y)
main=interact$show.c.unzip.map(""%).lines