diff --git a/d3golf.hs b/d3golf.hs index 9d5fc34..ad0c73d 100644 --- a/d3golf.hs +++ b/d3golf.hs @@ -1,8 +1,13 @@ import Data.List -d=id -v p@(x:s)=(length p,length x,p) -q l z = fromEnum$l`div`22*y+x)0.reverse -u w i=i*(2^w-1-i) -t (h,w,i)=u w$c$map(q h.sum.map(subtract 48.fromEnum))$transpose i -main=interact$show.((,).d<*>d).t.v.lines \ No newline at end of file +d=foldr(\x y->2*y+x)0.reverse +v=(\i->i*(4095-i)).d.m +c q=read.pure.head.q.sortBy((.length).compare.length).group.sort +m=map(c head).transpose +startsWith d=filter((==d).pure.head) +mult f[[]]=[] +mult f xs=do + let i=c f$head$transpose xs + let s=map tail$startsWith(show i)xs + i:mult f s +t x=(d $ mult last x)*(d $ mult head x) +main=interact$show.((,).t<*>v).lines