ants
ttp://poj.org/problem?id=1852
にある、蟻の問題。(POJ,No.1852)
どうやるのか思いつかなかったけど、解放読んだら感動したので書いてみた。
datalist :: Int -> String -> [Int] datalist n = map read.take n.words minf :: Int -> [Int] -> Int minf l = foldl max 0.map (\x->min x (l-x)) maxf :: Int -> [Int] -> Int maxf l = foldl max 0.map (\x->min l (l-x)) ansn :: Int -> String ansn = (++) "min = ".show ansx :: Int -> String ansx = (++) "max = ".show main = do ln <- getLine cs <-getContents print.ansn.minf (l' ln).datalist (n ln) $ cs print.ansx.maxf (l' ln).datalist (n ln) $ cs where l' :: String -> Int l' = read.head.words n = read.head.tail.words
アルゴリズムを知ってしまうとなんて簡単な問題なんだと思えるけれど、こんなの自力でひらめくかどうか.....