Submission #1867616


Source Code Expand

(* split a string [s] at every char [c], and return the list of sub-strings *)
let split s c =
  let len = String.length s in
  let rec iter pos to_rev =
    if pos = len then List.rev ("" :: to_rev) else
      try
        let pos2 = String.index_from s pos c in
        if pos2 = pos then iter (pos+1) ("" :: to_rev) else
          iter (pos2+1) ((String.sub s pos (pos2-pos)) :: to_rev)
      with Not_found -> List.rev ( String.sub s pos (len-pos) :: to_rev )
  in
  iter 0 [];;

(* let n = int_of_string (input_line stdin);; *)

let rec print_int_list ls =
  match ls with
  | [] -> print_endline ""
  | [x] -> print_endline (string_of_int x ^ " ")
  | x :: xs -> let () = print_string ((string_of_int x) ^ " ") in print_int_list xs;;

let _ = input_line stdin;;

let ks = List.map int_of_string (split (input_line stdin) ' ');;

let calc ks =
  let rec iter ks = 
    match ks with
    | [] -> []
    | x0 :: xs ->
       try
         let x1 = List.hd xs in (min x0 x1) :: (iter xs)
       with
       | _ -> [x0] in
  match ks with
  | [] -> []
  | x :: _ -> iter (x :: ks);;

calc ks
|> print_int_list;;

(* let calc_opt ks =
 *   let rec iter ks = 
 *     match ks with
 *     | [] -> ()
 *     | x0 :: xs ->
 *        try
 *          let x1 = List.hd xs in
 *          let () = print_string ((string_of_int (min x0 x1)) ^ " ") in iter xs
 *        with
 *        | _ -> print_endline (string_of_int x0 ^ " ")
 *   in
 *   match ks with
 *   | [] -> ()
 *   | x :: _ -> iter (x :: ks);; *)


(* let concat ls = List.fold_left (fun x y -> x ^ y) "" ls;; *)
(* calc ks
 * |> List.map (fun x -> (string_of_int x) ^ " ")
 * |> concat
 * |> print_endline;; *)

Submission Info

Submission Time
Task B - 積み鉛筆
User tzskp1
Language OCaml (4.02.3)
Score 80
Code Size 1725 Byte
Status AC
Exec Time 66 ms
Memory 21504 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 80 / 80
Status
AC × 3
AC × 18
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, subtask0_0.txt, subtask0_1.txt, subtask0_10.txt, subtask0_11.txt, subtask0_12.txt, subtask0_13.txt, subtask0_14.txt, subtask0_2.txt, subtask0_3.txt, subtask0_4.txt, subtask0_5.txt, subtask0_6.txt, subtask0_7.txt, subtask0_8.txt, subtask0_9.txt
Case Name Status Exec Time Memory
sample1.txt AC 1 ms 384 KB
sample2.txt AC 1 ms 384 KB
sample3.txt AC 1 ms 384 KB
subtask0_0.txt AC 62 ms 20736 KB
subtask0_1.txt AC 56 ms 16512 KB
subtask0_10.txt AC 53 ms 16896 KB
subtask0_11.txt AC 57 ms 17408 KB
subtask0_12.txt AC 54 ms 16896 KB
subtask0_13.txt AC 56 ms 17280 KB
subtask0_14.txt AC 66 ms 20992 KB
subtask0_2.txt AC 49 ms 16384 KB
subtask0_3.txt AC 52 ms 16768 KB
subtask0_4.txt AC 56 ms 17408 KB
subtask0_5.txt AC 49 ms 16512 KB
subtask0_6.txt AC 52 ms 16640 KB
subtask0_7.txt AC 47 ms 16256 KB
subtask0_8.txt AC 57 ms 17408 KB
subtask0_9.txt AC 65 ms 21504 KB