Submission #1994146
Source Code Expand
(* 入力を取得してリストで返す *) let rec get n = match n with 0 -> [] | n -> let (a, b) = Scanf.scanf "%d-%d\n" (fun x y -> (x, y)) in [(a, b)] @ get (n - 1);; (* 5分単位にまるめる *) let round1 a = let h = a / 100 in let m = a mod 100 in h * 100 + (m - m mod 5);; let round2 b = let h = b / 100 in let m = b mod 100 in let m2 = if m mod 5 = 0 then m else m + (5 - m mod 5) in if m2 < 60 then h * 100 + m2 else (h + 1) * 100;; let rec round lst = match lst with [] -> [] | (a, b) :: rest -> [(round1 a, round2 b)] @ round rest;; (* ソート *) let rec take lst n = match lst with [] -> [] | first :: rest -> if n <= 0 then [] else first :: take rest (n - 1);; let rec drop lst n = match lst with [] -> [] | first :: rest -> if n <= 0 then lst else drop rest (n - 1);; let rec merge left right = match left with [] -> right | lfirst :: lrest -> match right with [] -> left | rfirst :: rrest -> let less x y = let (a, b) = x in let (c, d) = y in if a < c then true else false in if less lfirst rfirst then [lfirst] @ merge lrest right else [rfirst] @ merge left rrest;; let rec msort lst n = match lst with [] -> [] | lst -> if n <= 1 then lst else let half = n / 2 in let left = msort (take lst half) half in let right = msort (drop lst half) (n - half) in merge left right;; (* 結合 *) let rec deduple lst = match lst with [] -> [] | [tup] -> [tup] | (a, b) :: (c, d) :: rest -> let max x y = if x > y then x else y in if b >= c then deduple ([(a, max b d)] @ rest) else [(a, b)] @ deduple ([(c, d)] @ rest);; (* リストの中身を出力 *) let rec print lst = match lst with [] -> () | (a, b) :: rest -> Printf.printf "%04d-%04d\n" a b; print rest;; (* main *) let () = let n = Scanf.scanf "%d\n" (fun x -> x) in let lst = get n in print (deduple (msort (round lst) n))
Submission Info
Submission Time | |
---|---|
Task | D - 感雨時刻の整理 |
User | nymwa |
Language | OCaml (4.02.3) |
Score | 100 |
Code Size | 1958 Byte |
Status | AC |
Exec Time | 44 ms |
Memory | 8832 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 | 1 ms | 384 KB |
00_sample_02.txt | AC | 1 ms | 384 KB |
00_sample_03.txt | AC | 1 ms | 384 KB |
cho_cho_chokudai.txt | AC | 38 ms | 8064 KB |
chokudai_ga_cho.txt | AC | 38 ms | 8064 KB |
test_01.txt | AC | 1 ms | 640 KB |
test_02.txt | AC | 1 ms | 640 KB |
test_03.txt | AC | 1 ms | 640 KB |
test_04.txt | AC | 1 ms | 640 KB |
test_05.txt | AC | 1 ms | 640 KB |
test_06.txt | AC | 1 ms | 640 KB |
test_07.txt | AC | 1 ms | 640 KB |
test_08.txt | AC | 1 ms | 512 KB |
test_09.txt | AC | 2 ms | 1152 KB |
test_10.txt | AC | 2 ms | 1152 KB |
test_11.txt | AC | 2 ms | 1024 KB |
test_12.txt | AC | 2 ms | 896 KB |
test_13.txt | AC | 1 ms | 640 KB |
test_14.txt | AC | 2 ms | 1024 KB |
test_15.txt | AC | 2 ms | 1280 KB |
test_16.txt | AC | 1 ms | 640 KB |
test_17.txt | AC | 2 ms | 1024 KB |
test_18.txt | AC | 1 ms | 640 KB |
test_19.txt | AC | 1 ms | 896 KB |
test_20.txt | AC | 1 ms | 1024 KB |
test_21.txt | AC | 43 ms | 8832 KB |
test_22.txt | AC | 43 ms | 8832 KB |
test_23.txt | AC | 43 ms | 8832 KB |
test_24.txt | AC | 43 ms | 8832 KB |
test_25.txt | AC | 43 ms | 8832 KB |
test_26.txt | AC | 43 ms | 8832 KB |
test_27.txt | AC | 39 ms | 8448 KB |
test_28.txt | AC | 43 ms | 8832 KB |
test_29.txt | AC | 1 ms | 384 KB |
test_30.txt | AC | 1 ms | 512 KB |
test_31.txt | AC | 6 ms | 3328 KB |
test_32.txt | AC | 1 ms | 384 KB |
test_33.txt | AC | 27 ms | 7296 KB |
test_34.txt | AC | 1 ms | 384 KB |
test_35.txt | AC | 1 ms | 768 KB |
test_36.txt | AC | 43 ms | 8832 KB |
test_37.txt | AC | 44 ms | 8832 KB |
test_38.txt | AC | 43 ms | 8832 KB |
test_39.txt | AC | 43 ms | 8832 KB |
test_40.txt | AC | 42 ms | 8832 KB |
test_41.txt | AC | 35 ms | 7808 KB |
test_42.txt | AC | 42 ms | 8832 KB |
test_43.txt | AC | 38 ms | 8064 KB |