13 lines
387 B
Haskell
13 lines
387 B
Haskell
import Data.List
|
|
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
|