aoc2021/d13golf.hs
2021-12-14 13:42:15 +01:00

10 lines
365 B
Haskell

import Data.List
a=map
p(x,_:y)=s(a(read.('(':).(++")"))x,a(((,).(!!0)<*>read.drop 2).drop 11)y)
m f=maximum.a f
d i=[[last$'.':['#'|(x,y)`elem`i]|x<-[0..m(fst)i]]|y<-[0..m(snd)i]]
x&n=n-abs(n-x)
i%('x',n)=a(\(x,y)->(x&n,y))i
i%('y',n)=a(fmap(&n))i
s(i,z)=scanl(%)i z
main=getContents>>=((>>).(mapM putStrLn.d.last)<*>(print.length.nub.(!!1))).p.break(==[]).lines