結果

問題 No.1 道のショートカット
ユーザー krotonkroton
提出日時 2015-06-05 20:20:11
言語 Haskell
(9.8.2)
結果
AC  
実行時間 135 ms / 5,000 ms
コード長 956 bytes
コンパイル時間 8,504 ms
コンパイル使用メモリ 173,184 KB
実行使用メモリ 9,856 KB
最終ジャッジ日時 2024-07-20 16:14:49
合計ジャッジ時間 5,631 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 1 ms
5,376 KB
testcase_02 AC 2 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 2 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 2 ms
5,376 KB
testcase_08 AC 40 ms
9,344 KB
testcase_09 AC 14 ms
9,088 KB
testcase_10 AC 27 ms
9,216 KB
testcase_11 AC 46 ms
9,344 KB
testcase_12 AC 135 ms
9,856 KB
testcase_13 AC 116 ms
9,728 KB
testcase_14 AC 3 ms
5,504 KB
testcase_15 AC 2 ms
5,376 KB
testcase_16 AC 6 ms
7,296 KB
testcase_17 AC 1 ms
5,376 KB
testcase_18 AC 4 ms
5,504 KB
testcase_19 AC 3 ms
5,376 KB
testcase_20 AC 14 ms
8,192 KB
testcase_21 AC 6 ms
6,144 KB
testcase_22 AC 3 ms
5,376 KB
testcase_23 AC 88 ms
9,472 KB
testcase_24 AC 105 ms
9,216 KB
testcase_25 AC 28 ms
8,192 KB
testcase_26 AC 19 ms
7,168 KB
testcase_27 AC 91 ms
9,216 KB
testcase_28 AC 2 ms
5,376 KB
testcase_29 AC 25 ms
9,600 KB
testcase_30 AC 7 ms
8,192 KB
testcase_31 AC 12 ms
8,320 KB
testcase_32 AC 34 ms
9,216 KB
testcase_33 AC 19 ms
8,960 KB
testcase_34 AC 67 ms
9,856 KB
testcase_35 AC 10 ms
8,320 KB
testcase_36 AC 15 ms
9,088 KB
testcase_37 AC 11 ms
8,576 KB
testcase_38 AC 3 ms
5,376 KB
testcase_39 AC 4 ms
5,760 KB
testcase_40 AC 7 ms
8,192 KB
testcase_41 AC 3 ms
5,376 KB
testcase_42 AC 2 ms
5,376 KB
testcase_43 AC 1 ms
5,376 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 )
[2 of 2] Linking a.out

ソースコード

diff #

import Control.Applicative
import Data.List

main = do
    n <- read <$> getLine
    c <- read <$> getLine
    getLine
    s <- map read . words <$> getLine
    t <- map read . words <$> getLine
    y <- map read . words <$> getLine
    m <- map read . words <$> getLine
    print $ solve n c $ createRouteList s t y m

inf :: Int
inf = 2^20

solve :: Int -> Int -> [Route] -> Int
solve n cmax routes = if ans < inf then ans else -1
    where
        ans = f 1 cmax
        f m c | m == n = 0
              | otherwise = foldr min inf [(memo !! ((to r) - 1) !! (c - (cost r))) + (rtime r) | r <- es]
            where
                es = [r | r <- routes, (from r) == m, c - (cost r) >= 0]
        memo = [[f m c | c <- [0..cmax]] | m <- [1..n]]

data Route = Route
    { from :: Int
    , to :: Int
    , cost :: Int
    , rtime :: Int
    } deriving (Show)

createRouteList :: [Int] -> [Int] -> [Int] -> [Int] -> [Route]
createRouteList = zipWith4 Route
0