16 lines
No EOL
419 B
Haskell
16 lines
No EOL
419 B
Haskell
import Data.Either
|
|
e=[]:e
|
|
j=all i
|
|
a=m.m.m.k
|
|
w p=head.rights.p
|
|
k d i|i==l d=pure d|let=i
|
|
a?b|(not.i)a,i b=b|let=l 0
|
|
(x:y)#f=m(x!)(a x f):y#a x f
|
|
a&x|(u,_:v)<-break(==x)a=u:v&x|let=[a]
|
|
p(x:(_:y))=m read(x&',')#(m(m(l.read).words)y&[])
|
|
x!d|any j d||any j(foldr(z(:))e d)=pure$(x*)$sum$lefts=<<d|let=l 0
|
|
main=interact$show.((,).w((\(b,h:_)->z(?)(last b)h).break j)<*>w(filter i=<<)).p.lines
|
|
m=map
|
|
l=Left
|
|
z=zipWith
|
|
i=isRight |