Submission #108275
Source Code Expand
{-# LANGUAGE MultiParamTypeClasses,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,BangPatterns,RankNTypes #-} import Control.Monad import Control.Monad.ST import Control.Applicative import Control.Arrow import Debug.Trace import Data.List import Data.Int import Data.Maybe import Data.Array.Unboxed import Data.Array.ST import qualified Data.Map as M import qualified Data.Set as S import qualified Data.ByteString.Char8 as B import Text.Printf readInt = B.readInt >>> fmap fst >>> fromMaybe 0 readsInt = map readInt . B.words <$> B.getLine readLine :: Read a => IO a readLine = read <$> getLine readsLine :: Read a => IO [a] readsLine = map read . words <$> getLine cmpFst (a,_) (b,_) = compare a b cmpSnd (_,a) (_,b) = compare a b cmpLen a b = length a `compare` length b swap (a,b) = (b,a) rect a b = rect2 0 0 a b rect2 i j a b = ((i,j),(a,b)) itof :: Int -> Double itof = fromIntegral casti = fromIntegral maximize f l = snd $ maximumBy cmpFst [(f x,x) | x <- l] minimize f l = snd $ minimumBy cmpFst [(f x,x) | x <- l] infixr 2 <||> infixr 3 <&&> p1 <||> p2 = (p1 &&& p2) >>> uncurry (||) p1 <&&> p2 = (p1 &&& p2) >>> uncurry (&&) parse (a1:a2:a3:a4:'-':a5:a6:a7:a8:_) = (h1*60+m1,h2*60+m2) where h1 = read [a1,a2] :: Int h2 = read [a5,a6] :: Int m1 = read [a3,a4] :: Int m2 = read [a7,a8] :: Int solve :: [(Int,Int)] -> [(Int,Int)] solve l = merge $ map marume l merge l = sort $ foldl' f [] l where f acc (a,b) = (a',b'):y where (x,y) = partition (hasIntersection (a,b)) acc (l1,l2) = unzip x a' = minimum $ a:l1 b' = maximum $ b:l2 hasIntersection (a,b) (c,d) = (c <= b && a <= d) marume (a,b) = (floor (fromIntegral a/5)*5,ceiling (fromIntegral b/5)*5) main = do n <- readLn l <- replicateM n (parse <$> getLine) let ans = solve l forM_ ans $ \ (a,b) -> do let h1 = a `div` 60 let m1 = a `mod` 60 let h2 = b `div` 60 let m2 = b `mod` 60 printf "%02d%02d-%02d%02d\n" h1 m1 h2 m2
Submission Info
Submission Time | |
---|---|
Task | D - 感雨時刻の整理 |
User | autotaker |
Language | Haskell (GHC 7.4.1) |
Score | 100 |
Code Size | 2136 Byte |
Status | AC |
Exec Time | 1247 ms |
Memory | 35044 KB |
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
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 | 59 ms | 1440 KB |
00_sample_02.txt | AC | 28 ms | 1312 KB |
00_sample_03.txt | AC | 26 ms | 1568 KB |
cho_cho_chokudai.txt | AC | 1033 ms | 34964 KB |
chokudai_ga_cho.txt | AC | 1023 ms | 34976 KB |
test_01.txt | AC | 34 ms | 2080 KB |
test_02.txt | AC | 32 ms | 2080 KB |
test_03.txt | AC | 31 ms | 2084 KB |
test_04.txt | AC | 34 ms | 2080 KB |
test_05.txt | AC | 32 ms | 2076 KB |
test_06.txt | AC | 33 ms | 1952 KB |
test_07.txt | AC | 29 ms | 1944 KB |
test_08.txt | AC | 29 ms | 1824 KB |
test_09.txt | AC | 45 ms | 2528 KB |
test_10.txt | AC | 45 ms | 2588 KB |
test_11.txt | AC | 42 ms | 2464 KB |
test_12.txt | AC | 39 ms | 2212 KB |
test_13.txt | AC | 32 ms | 1908 KB |
test_14.txt | AC | 43 ms | 2456 KB |
test_15.txt | AC | 47 ms | 2596 KB |
test_16.txt | AC | 31 ms | 1948 KB |
test_17.txt | AC | 44 ms | 2400 KB |
test_18.txt | AC | 33 ms | 1948 KB |
test_19.txt | AC | 40 ms | 2216 KB |
test_20.txt | AC | 42 ms | 2336 KB |
test_21.txt | AC | 1022 ms | 34928 KB |
test_22.txt | AC | 1028 ms | 34992 KB |
test_23.txt | AC | 1051 ms | 34932 KB |
test_24.txt | AC | 1027 ms | 34976 KB |
test_25.txt | AC | 1018 ms | 34980 KB |
test_26.txt | AC | 1040 ms | 34972 KB |
test_27.txt | AC | 1044 ms | 35020 KB |
test_28.txt | AC | 1151 ms | 35032 KB |
test_29.txt | AC | 28 ms | 1312 KB |
test_30.txt | AC | 28 ms | 1884 KB |
test_31.txt | AC | 196 ms | 7324 KB |
test_32.txt | AC | 29 ms | 1768 KB |
test_33.txt | AC | 769 ms | 21668 KB |
test_34.txt | AC | 26 ms | 1444 KB |
test_35.txt | AC | 35 ms | 1956 KB |
test_36.txt | AC | 1030 ms | 34972 KB |
test_37.txt | AC | 1247 ms | 34980 KB |
test_38.txt | AC | 1043 ms | 34976 KB |
test_39.txt | AC | 1060 ms | 35044 KB |
test_40.txt | AC | 1090 ms | 34984 KB |
test_41.txt | AC | 1021 ms | 34972 KB |
test_42.txt | AC | 1029 ms | 34972 KB |
test_43.txt | AC | 1027 ms | 34972 KB |