Submission #2850123


Source Code Expand

module M = Map.Make(struct type t = int let compare = (-) end)
let rec seq a b = if a > b then [] else a :: seq (a+1) b
let (>>=) x f = match x with Some x -> f x | _ -> None
let rec pt k b n =
  if k <= 0 then if n = 0 then [[]] else []
  else
    seq 1 (min n 3)
    |> List.map (fun l ->
      pt (k-1) (b+l) (n-l) |> List.map @@ fun e -> (b, l) :: e)
    |> List.concat

let fold_and f = List.fold_left (fun x y -> match x with None -> None | Some x -> f x y)
let find_some f = List.fold_left (fun a x -> match a with Some _ -> a | None -> f x) None

let () =
  Scanf.scanf "%d %d" @@ fun k n ->
  let vw = Array.init n (fun _ -> Scanf.scanf " %s %s" (fun v w -> v, w)) in
  let rec find idx m =
    if idx >= n then Some m else begin
    let v, w = vw.(idx) in
    pt (String.length v) 0 (String.length w) |> find_some (fun rs ->
      List.mapi (fun i (s, l) -> int_of_char v.[i] - 49, String.sub w s l) rs
      |> fold_and (fun m (i, s) ->
          try let s' = M.find i m in if s = s' then Some m else None
          with Not_found -> Some (M.add i s m)) (Some m)
      |> fun mm' -> mm' >>= find (idx+1))
    end
  in
  find 0 M.empty |> function Some m -> m |> M.iter (fun _ -> Printf.printf "%s\n")

Submission Info

Submission Time
Task D - 語呂合わせ
User lrmystp
Language OCaml (4.02.3)
Score 100
Code Size 1239 Byte
Status AC
Exec Time 67 ms
Memory 12928 KB

Compile Error

File "./Main.ml", line 29, characters 20-82:
Warning 8: this pattern-matching is not exhaustive.
Here is an example of a value that is not matched:
None

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 40 / 40 60 / 60
Status
AC × 4
AC × 23
AC × 44
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt
Subtask2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt
Case Name Status Exec Time Memory
sample-01.txt AC 1 ms 384 KB
sample-02.txt AC 1 ms 384 KB
sample-03.txt AC 1 ms 640 KB
sample-04.txt AC 1 ms 384 KB
subtask1-01.txt AC 12 ms 6144 KB
subtask1-02.txt AC 4 ms 2688 KB
subtask1-03.txt AC 14 ms 2688 KB
subtask1-04.txt AC 7 ms 6272 KB
subtask1-05.txt AC 1 ms 768 KB
subtask1-06.txt AC 18 ms 6528 KB
subtask1-07.txt AC 24 ms 7424 KB
subtask1-08.txt AC 3 ms 2816 KB
subtask1-09.txt AC 2 ms 1792 KB
subtask1-10.txt AC 24 ms 7168 KB
subtask1-11.txt AC 35 ms 2688 KB
subtask1-12.txt AC 22 ms 7680 KB
subtask1-13.txt AC 35 ms 2688 KB
subtask1-14.txt AC 6 ms 5376 KB
subtask1-15.txt AC 13 ms 6528 KB
subtask1-16.txt AC 35 ms 2688 KB
subtask1-17.txt AC 1 ms 1024 KB
subtask1-18.txt AC 18 ms 6400 KB
subtask1-19.txt AC 28 ms 8064 KB
subtask1-20.txt AC 3 ms 2560 KB
subtask2-01.txt AC 14 ms 6016 KB
subtask2-02.txt AC 11 ms 5888 KB
subtask2-03.txt AC 14 ms 5888 KB
subtask2-04.txt AC 15 ms 6144 KB
subtask2-05.txt AC 21 ms 6912 KB
subtask2-06.txt AC 23 ms 7296 KB
subtask2-07.txt AC 13 ms 2688 KB
subtask2-08.txt AC 11 ms 5632 KB
subtask2-09.txt AC 35 ms 2688 KB
subtask2-10.txt AC 35 ms 2688 KB
subtask2-11.txt AC 35 ms 2688 KB
subtask2-12.txt AC 67 ms 12928 KB
subtask2-13.txt AC 40 ms 9856 KB
subtask2-14.txt AC 1 ms 640 KB
subtask2-15.txt AC 66 ms 10876 KB
subtask2-16.txt AC 29 ms 7808 KB
subtask2-17.txt AC 2 ms 2560 KB
subtask2-18.txt AC 35 ms 2688 KB
subtask2-19.txt AC 35 ms 2688 KB
subtask2-20.txt AC 35 ms 2688 KB