12 lines
325 B
Haskell
12 lines
325 B
Haskell
import Data.List
|
|
s=scanl
|
|
v=[-1..1]
|
|
r=replicate
|
|
h%t=t+signum(h-t)
|
|
p(d:_:i)=r(read i)d
|
|
(h:l)&d=s(?)(zipWith(+)(z[d])h)l
|
|
[x,y]!t=elem t[[x+n,y+m]|n<-v,m<-v]
|
|
h@[x,y]?t@[a,b]|h!t=t|let=[x%a,y%b]
|
|
w i=length.nub.map last.(s(&)$r i[0,0])
|
|
z"U"=[1,0];z"D"=[-1,0];z"L"=[0,-1];z"R"=[0,1]
|
|
main=interact$show.((,).w 10<*>w 2).(p=<<).lines
|