📄 edge.hs.txt
字号:
-- Problem Edge-- Algorithm Straight-Forward-- Runtime O(n)-- Author Walter Guttmann-- Date 05.01.2003import Complex;import Monad;type Comp = Complex Doublemain :: IO ()main = readFile "edge.in" >>= mapM_ solve . wordssolve :: String -> IO ()solve s = do putStrLn "300 420 moveto" putStrLn "310 420 lineto" foldM turn (310:+420,10:+0) s putStrLn "stroke" putStrLn "showpage"turn :: (Comp,Comp) -> Char -> IO (Comp,Comp)turn (pos,d) c = let print (x:+y) = show (round x) ++ " " ++ show (round y) ++ " lineto" d' = rot d c pos' = pos + d' in putStrLn (print pos') >> return (pos',d')rot :: Comp -> Char -> Comprot d 'A' = d * (0:+(-1))rot d 'V' = d * (0:+1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -