結果

問題 No.595 登山
ユーザー pekempeypekempey
提出日時 2017-11-11 18:47:30
言語 Haskell
(9.8.2)
結果
AC  
実行時間 578 ms / 1,500 ms
コード長 474 bytes
コンパイル時間 5,535 ms
コンパイル使用メモリ 171,776 KB
実行使用メモリ 66,176 KB
最終ジャッジ日時 2024-11-24 19:23:15
合計ジャッジ時間 10,721 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 2 ms
5,248 KB
testcase_02 AC 1 ms
5,248 KB
testcase_03 AC 1 ms
5,248 KB
testcase_04 AC 442 ms
65,152 KB
testcase_05 AC 116 ms
20,992 KB
testcase_06 AC 417 ms
58,368 KB
testcase_07 AC 37 ms
12,928 KB
testcase_08 AC 61 ms
16,000 KB
testcase_09 AC 405 ms
58,880 KB
testcase_10 AC 248 ms
35,328 KB
testcase_11 AC 216 ms
35,328 KB
testcase_12 AC 33 ms
12,928 KB
testcase_13 AC 98 ms
20,992 KB
testcase_14 AC 274 ms
34,560 KB
testcase_15 AC 262 ms
34,560 KB
testcase_16 AC 270 ms
34,560 KB
testcase_17 AC 286 ms
34,432 KB
testcase_18 AC 272 ms
34,432 KB
testcase_19 AC 572 ms
66,048 KB
testcase_20 AC 575 ms
66,176 KB
testcase_21 AC 571 ms
66,048 KB
testcase_22 AC 574 ms
66,048 KB
testcase_23 AC 565 ms
66,176 KB
testcase_24 AC 1 ms
5,248 KB
testcase_25 AC 2 ms
5,248 KB
testcase_26 AC 578 ms
66,048 KB
testcase_27 AC 445 ms
65,024 KB
testcase_28 AC 430 ms
65,152 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )

Main.hs:9:52: warning: [GHC-63394] [-Wx-partial]
    In the use of ‘tail’
    (imported from Data.List, but defined in GHC.List):
    "This is a partial function, it throws an error on empty lists. Replace it with drop 1, or use pattern matching or Data.List.uncons instead. Consider refactoring to use Data.List.NonEmpty."
  |
9 | solve p a = uncurry min . foldl' f (0, p) $ zip a (tail a)
  |                                                    ^^^^
[2 of 2] Linking a.out

ソースコード

diff #

import Data.List

main = do
  [_, p] <- map read . words <$> getLine
  h <- map read . words <$> getLine
  print $ solve p h

solve :: Int -> [Int] -> Int
solve p a = uncurry min . foldl' f (0, p) $ zip a (tail a)
  where
    f :: (Int, Int) -> (Int, Int) -> (Int, Int)
    f (dpR, dpL) (h0, h1) = (v0, v1)
      where
        r = max 0 (h1 - h0)
        l = max 0 (h0 - h1)
        v0 = minimum [dpR + r, dpR + p, dpL + p]
        v1 = minimum [dpL + l, dpL + p, dpR + p]

0