迷路
人材獲得作戦・4 試験問題ほか: 人生を書き換える者すらいた。
3時間きっちり考えた結果
maze.arc
(= m (filechars "~/gists/maze_arc/maze.txt") ; or (drain:readc) w (+ 1 (pos #\newline m)) a (n-of len.m nil) (a:pos #\S m) '(0) d 0 route) (until route (on p a (if (is car.p d) (on n (map [+ _ index] `(1 -1 ,w ,-.w)) (case m.n #\G (= route cdr.p) #\ (or= a.n `(,(+ d 1) ,n ,@cdr.p)))))) (++ d)) (map [= m._ #\$] route) pr.m
適当に畳んで
(loop(= m(drain:readb)w(+(pos 10 m)1)a(n-of len.m())(a:pos 83 m)'(0)d 0 r)no.r(++ d) (on p a(if(is car.p d)(on n(map[+ _ index]`(1 -1,w,-.w))(case m.n 71(= r cdr.p)32(or= a.n `(,(+ d 1),n,@cdr.p))))))) (map[= m._ 36]r)(map writeb m)
これで230bくらいらしい。
http://shinh.skr.jp/m/?date=20100113#p05
読めないけど凄いなぁ…