Submission #276893


Source Code Expand

readSE 0 = return []
readSE n = do
  line <- getLine
  let s = read $ take 4 line :: Int
  let e = read $ drop 5 line :: Int
  t <- readSE (n - 1)
  return ((s, e) : t)

getStart s = s - s `mod` 5

getEnd e = let r = e `mod` 5 in
  if r == 0
  then e
  else let t = e + 5 - r in
    if t `mod` 100 == 60
    then t + 40
    else t

mergeSlot (s1, e1) (s2, e2) =
  if s1 <= s2 then
    if e1 >= e2 then (s1, e1) else (s1, e2)
  else
    if e1 >= e2 then (s2, e1) else (s2, e2)

insertSlot x [] = [x]
insertSlot x (y : ys) =
  if fst x > snd y
  then y : insertSlot x ys
  else if snd x < fst y
       then x : y : ys
       else insertSlot (mergeSlot x y) ys

sprint4 n =
  if n >= 1000 then show n
  else if n >= 100 then "0" ++ show n
       else if n >= 10 then "00" ++ show n
            else "000" ++ show n

print' [] = return ()
print' (x : xs) = do
  putStrLn $ sprint4 (fst x) ++ "-" ++ sprint4 (snd x)
  print' xs

main = do
  n <- getLine
  se <- readSE (read n :: Int)
  print' $ foldr (\p acc -> insertSlot
                            (getStart $ fst p, getEnd $ snd p)
                            acc) [] se

Submission Info

Submission Time
Task D - 感雨時刻の整理
User soimort
Language Haskell (GHC 7.4.1)
Score 100
Code Size 1172 Byte
Status AC
Exec Time 673 ms
Memory 28564 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 30 ms 1124 KB
00_sample_02.txt AC 26 ms 1056 KB
00_sample_03.txt AC 26 ms 1172 KB
cho_cho_chokudai.txt AC 509 ms 22412 KB
chokudai_ga_cho.txt AC 512 ms 22416 KB
test_01.txt AC 29 ms 1560 KB
test_02.txt AC 27 ms 1684 KB
test_03.txt AC 29 ms 1684 KB
test_04.txt AC 28 ms 1692 KB
test_05.txt AC 30 ms 1692 KB
test_06.txt AC 30 ms 1720 KB
test_07.txt AC 30 ms 1696 KB
test_08.txt AC 29 ms 1552 KB
test_09.txt AC 36 ms 1936 KB
test_10.txt AC 36 ms 1940 KB
test_11.txt AC 34 ms 1820 KB
test_12.txt AC 31 ms 1808 KB
test_13.txt AC 30 ms 1676 KB
test_14.txt AC 34 ms 1820 KB
test_15.txt AC 36 ms 1928 KB
test_16.txt AC 29 ms 1680 KB
test_17.txt AC 33 ms 1804 KB
test_18.txt AC 29 ms 1708 KB
test_19.txt AC 33 ms 1804 KB
test_20.txt AC 32 ms 1808 KB
test_21.txt AC 504 ms 22428 KB
test_22.txt AC 513 ms 22416 KB
test_23.txt AC 511 ms 22412 KB
test_24.txt AC 508 ms 22408 KB
test_25.txt AC 508 ms 22488 KB
test_26.txt AC 511 ms 22420 KB
test_27.txt AC 511 ms 22432 KB
test_28.txt AC 581 ms 25824 KB
test_29.txt AC 26 ms 1056 KB
test_30.txt AC 28 ms 1556 KB
test_31.txt AC 110 ms 6036 KB
test_32.txt AC 26 ms 1560 KB
test_33.txt AC 404 ms 17392 KB
test_34.txt AC 27 ms 1048 KB
test_35.txt AC 30 ms 1684 KB
test_36.txt AC 510 ms 22412 KB
test_37.txt AC 673 ms 28564 KB
test_38.txt AC 518 ms 22416 KB
test_39.txt AC 527 ms 22424 KB
test_40.txt AC 532 ms 22416 KB
test_41.txt AC 517 ms 22416 KB
test_42.txt AC 507 ms 22452 KB
test_43.txt AC 510 ms 22412 KB