蟻本第2版23ページの問題 (POJ 1852) をHaskellで書く - 🍥shuma_yoshiokaに引き続き、プログラミング学び直し日記。「プログラミングコンテストチャレンジブック 第2版」の34ページより、「部分和問題」。類似問題はこちら。
![プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える? プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?](https://images-fe.ssl-images-amazon.com/images/I/41bHxtpurqL._SL160_.jpg)
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (35件) を見る
f0 :: [Int] -> Int -> Bool f0 (a:as) k = a == k || f0 as k || f1 a as k f0 [] _ = False f1 :: Int -> [Int] -> Int -> Bool f1 x (y:ys) k = x + y == k || f1 (x+y) ys k f1 _ [] _ = False main :: IO () main = do _ <- readLn :: IO Int -- n as <- (map read . words) <$> getLine :: IO [Int] k <- readLn :: IO Int putStrLn $ if (f0 as k) then "Yes" else "No"
コレで合ってるか大変不安である。しかし参考ナシで例を一発正当できたので嬉しい。