Submission #126455


Source Code Expand

import Control.Arrow
import Data.List

padding s c n 
  | len < n   = c : padding s c (n-1)
  | len == n  = s
  where 
    len = length s

rInt :: String -> Int
rInt = read

getLines n = do
  if n == 0 then return []
  else do 
    x <- getLine
    xs <- getLines $ n-1
    return $ x : xs

split c s = case break(==c) s of
  (w, _:s) -> (w, s) 

unsplit c x = (fst x)++[c]++(snd x)

organize = overlap.roundAll.sort

roundAll [] = []
roundAll (x:xs) = (rs,re): roundAll xs
  where s = (fromIntegral.fst) x
        e = (fromIntegral.snd) x
        rs = (*) 5 $ floor $ s / 5
        re | re' `mod` 100 == 60 = re'+40
           | otherwise           = re'
           where re' = (*) 5 $ ceiling $ e / 5

overlap (x:xs) = overlap' x xs
  where 
    overlap' x (xn:xs)
      | fst xn <= snd x  = overlap' (s, e) xs
      | otherwise        = x : overlap' xn xs
      where ns = [fst x, snd x, fst xn, snd xn]
            s = minimum ns
            e = maximum ns
    overlap' x [] = [x]

main = do
  n <- readLn
  list <- getLines n >>= (runKleisli $ arr $ map $ 
                            (\x -> split '-' x) 
                            >>> rInt *** rInt)
  list <- return $ organize list
  list <- return list>>= (runKleisli $ arr $ map $ 
                            show *** show 
                            >>> (\(x,y) -> (padding x '0' 4, padding y '0' 4))
                            >>> (\x -> unsplit '-' x))
  mapM_ putStrLn list

Submission Info

Submission Time
Task D - 感雨時刻の整理
User kaz184
Language Haskell (GHC 7.4.1)
Score 100
Code Size 1496 Byte
Status AC
Exec Time 813 ms
Memory 31904 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 28 ms 1436 KB
00_sample_02.txt AC 25 ms 1120 KB
00_sample_03.txt AC 26 ms 1312 KB
cho_cho_chokudai.txt AC 685 ms 25636 KB
chokudai_ga_cho.txt AC 528 ms 19424 KB
test_01.txt AC 29 ms 1948 KB
test_02.txt AC 29 ms 1832 KB
test_03.txt AC 30 ms 1892 KB
test_04.txt AC 30 ms 1776 KB
test_05.txt AC 29 ms 1828 KB
test_06.txt AC 32 ms 1828 KB
test_07.txt AC 33 ms 1828 KB
test_08.txt AC 27 ms 1896 KB
test_09.txt AC 39 ms 2336 KB
test_10.txt AC 39 ms 2468 KB
test_11.txt AC 37 ms 2200 KB
test_12.txt AC 35 ms 2208 KB
test_13.txt AC 31 ms 1884 KB
test_14.txt AC 41 ms 2340 KB
test_15.txt AC 42 ms 2464 KB
test_16.txt AC 32 ms 1828 KB
test_17.txt AC 37 ms 2340 KB
test_18.txt AC 32 ms 1952 KB
test_19.txt AC 36 ms 2204 KB
test_20.txt AC 37 ms 2204 KB
test_21.txt AC 805 ms 31900 KB
test_22.txt AC 794 ms 31780 KB
test_23.txt AC 787 ms 31904 KB
test_24.txt AC 806 ms 31776 KB
test_25.txt AC 800 ms 31900 KB
test_26.txt AC 752 ms 30756 KB
test_27.txt AC 657 ms 23712 KB
test_28.txt AC 781 ms 30788 KB
test_29.txt AC 26 ms 1184 KB
test_30.txt AC 27 ms 1824 KB
test_31.txt AC 123 ms 6304 KB
test_32.txt AC 27 ms 1780 KB
test_33.txt AC 490 ms 21664 KB
test_34.txt AC 25 ms 1308 KB
test_35.txt AC 32 ms 2036 KB
test_36.txt AC 755 ms 31776 KB
test_37.txt AC 762 ms 30884 KB
test_38.txt AC 775 ms 30884 KB
test_39.txt AC 781 ms 30888 KB
test_40.txt AC 813 ms 30880 KB
test_41.txt AC 518 ms 19484 KB
test_42.txt AC 730 ms 30880 KB
test_43.txt AC 541 ms 19484 KB