aoc2021/d5golf2.hs
2021-12-05 15:45:05 +01:00

7 lines
No EOL
278 B
Haskell

import Data.List
m=map;l=length;f=filter
v[a,b]=or$zipWith(==)a b
x?y|x>y=x-1|x<y=x+1|let=x
z a|(x,_:y)<-break(<'.')a=m read[x,y]
n[f@[x,y],d@[a,b]]|x==a,y==b=[f]|let=f:n[[x?a,y?b],d]
main=interact$show.m(l.f(>1).m l.group.sort.(n=<<)).(\x->[x,f v x]).m(m z.f(>".").words).lines