Submission #3220692


Source Code Expand

let () = Scanf.scanf "%d %d\n" @@ fun n l ->
  let xds = Array.init n @@ fun _ ->
    Scanf.scanf "%d %c\n" @@ fun x d -> x, d in
  Printf.printf "%d\n" @@
  match
    Array.fold_left (fun (acc, st) (x', d) ->
      match st, d with
      | `Right (r, x), 'R' ->
          acc + r * (x' - x - 1), `Right (r + 1, x')
      | `Right (r, x), 'L' ->
          acc, `Left (x, x', r, 1, x')
      | `Left (xr, xl, r, l, x), 'L' ->
          acc + x' - x - 1, `Left (xr, xl, r, l + 1, x + 1)
      | `Left (xr, xl, r, l, _), 'R' ->
          acc + (xl - xr - 1) * max r l), `Right (1, x'))
    (0, `Right (0, 0)) xds
  with
  | acc, `Right (r, x) -> acc + r * (l - x)
  | acc, `Left (xr, xl, cr, l, _) -> acc + (xl - xr - 1) * max r l

Submission Info

Submission Time
Task C - ウサギ跳び
User fetburner
Language OCaml (4.02.3)
Score 0
Code Size 745 Byte
Status CE

Compile Error

File "./Main.ml", line 15, characters 56-57:
Error: Syntax error