Submission #3779083


Source Code Expand

import Data.List (sort)

main = do
    getLine
    putStr . unlines . solve . lines =<< getContents

-- |
-- >>> solve ["1148-1210","1323-1401","1106-1123","1129-1203"]
-- ["1105-1210","1320-1405"]
-- >>> solve ["0000-2400"]
-- ["0000-2400"]
-- >>> solve ["1157-1306","1159-1307","1158-1259","1230-1240","1157-1306","1315-1317"]
-- ["1155-1310","1315-1320"]

solve ss = map toString . reverse $ foldl f [t] ts
  where
    t:ts = sort $ map roundUp ss
    f acc x = merge (head acc) x ++ tail acc

merge t u
    | snd t < fst u = [u, t]
    | otherwise     = [(fst t, max (snd t) (snd u))]

roundUp s =
    let spanned = span (/= '-') s
        start = fst spanned
        end = tail $ snd spanned
    in  (backword start, forward end)

forward s =
    let hm = read s
        m  = ((hm `mod` 100) + 4) `div` 5 * 5
        m' = if m == 60 then 0 else m
        h  = hm `div` 100 + if m == 60 then 1 else 0
    in  h * 100 + m'

backword s =
    let hm = read s
        m = (hm `mod` 100) `div` 5 * 5
        h = hm `div` 100
    in  h * 100 + m

toString (st, et) =
    let s  = reverse . take 4 . (++ "000") . reverse $ show st
        e  = reverse . take 4 . (++ "000") . reverse $ show et
    in  s ++ "-" ++ e

Submission Info

Submission Time
Task D - 感雨時刻の整理
User tomaru5963
Language Haskell (GHC 7.10.3)
Score 100
Code Size 1259 Byte
Status AC
Exec Time 433 ms
Memory 25980 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 2 ms 508 KB
00_sample_02.txt AC 2 ms 508 KB
00_sample_03.txt AC 2 ms 508 KB
cho_cho_chokudai.txt AC 268 ms 6908 KB
chokudai_ga_cho.txt AC 285 ms 8444 KB
test_01.txt AC 3 ms 1020 KB
test_02.txt AC 3 ms 1020 KB
test_03.txt AC 3 ms 1020 KB
test_04.txt AC 3 ms 1020 KB
test_05.txt AC 3 ms 1020 KB
test_06.txt AC 4 ms 1020 KB
test_07.txt AC 4 ms 1020 KB
test_08.txt AC 3 ms 1020 KB
test_09.txt AC 8 ms 1404 KB
test_10.txt AC 9 ms 1532 KB
test_11.txt AC 7 ms 1276 KB
test_12.txt AC 6 ms 1276 KB
test_13.txt AC 4 ms 1020 KB
test_14.txt AC 8 ms 1404 KB
test_15.txt AC 9 ms 1532 KB
test_16.txt AC 4 ms 1020 KB
test_17.txt AC 8 ms 1404 KB
test_18.txt AC 4 ms 1020 KB
test_19.txt AC 6 ms 1276 KB
test_20.txt AC 7 ms 1276 KB
test_21.txt AC 384 ms 24828 KB
test_22.txt AC 384 ms 24828 KB
test_23.txt AC 391 ms 25980 KB
test_24.txt AC 395 ms 25852 KB
test_25.txt AC 411 ms 24828 KB
test_26.txt AC 414 ms 25212 KB
test_27.txt AC 319 ms 11516 KB
test_28.txt AC 405 ms 24828 KB
test_29.txt AC 2 ms 508 KB
test_30.txt AC 2 ms 1020 KB
test_31.txt AC 53 ms 4604 KB
test_32.txt AC 2 ms 892 KB
test_33.txt AC 259 ms 17020 KB
test_34.txt AC 2 ms 508 KB
test_35.txt AC 5 ms 1148 KB
test_36.txt AC 433 ms 24956 KB
test_37.txt AC 411 ms 24828 KB
test_38.txt AC 417 ms 25340 KB
test_39.txt AC 411 ms 24828 KB
test_40.txt AC 405 ms 24188 KB
test_41.txt AC 270 ms 6396 KB
test_42.txt AC 400 ms 25468 KB
test_43.txt AC 279 ms 8444 KB