11 lines
340 B
Haskell
11 lines
340 B
Haskell
e=[]:e
|
|
l=length
|
|
s d=d<*>c
|
|
v=reverse
|
|
n~(x:s)|x<n=1+n~s|let=1;_~_=0
|
|
a%b|(h,_:t)<-splitAt a b=[v h,t]
|
|
m?t@(x,y)=any(all(<m!!y!!x))$m#t
|
|
m!t@(x,y)=product$map((m!!y!!x)~)$m#t
|
|
c m=[(i,j)|i<-[0..l m-1],j<-[0..l(m!!0)-1]]
|
|
m#(x,y)|r<-m!!y,c<-foldr(zipWith(:))e m!!x=x%r++y%c
|
|
main=interact$show.((,).s((maximum.).map.(!))<*>s((l.).filter.(?))).lines
|