11 lines
373 B
Haskell
11 lines
373 B
Haskell
import Data.List
|
|
m=map
|
|
z=splitAt
|
|
x%[i,s,t]=u t$d i s x
|
|
i(_:x:y)=read x:i y;i _=[]
|
|
t(_:a:_:_:x)=a:t x;t(_:a:x)=[a]
|
|
u s(a,x)|(t,r:d)<-z(s-1)x=t++(a++r):d
|
|
x#[i,s,t]|i<1=x|let=x%[1,s,t]#[i-1,s,t]
|
|
q r(a,_:b)=foldl r(m(filter(>'@'))$t$transpose a)$m(i.words)b
|
|
d n s x|(t,v:d)<-z(s-1)x,(h,r)<-z n v=(h,t++(r:d))
|
|
main=interact$show.(\i->m(m head.($i))[q(#),q(%)]).span(/=[]).lines
|