結果
| 問題 | No.482 あなたの名は |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-02-11 02:19:18 |
| 言語 | OCaml (5.2.1) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,080 bytes |
| 記録 | |
| コンパイル時間 | 210 ms |
| コンパイル使用メモリ | 16,896 KB |
| 最終ジャッジ日時 | 2024-11-14 19:58:11 |
| 合計ジャッジ時間 | 1,439 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
File "Main.ml", line 1, characters 5-8:
1 | open Num
^^^
Error: Unbound module Num
ソースコード
open Num
let solve k darr =
let len_darr = Array.length darr in
let chk_darr = Array.make len_darr false in
let rec get_len_loop start current result =
chk_darr.(current) <- true;
let next = darr.(current) in
if next = start then result
else get_len_loop start next (result + 1)
in
let rec get_len_loop_sum idx result =
if idx >= len_darr then result
else (
if chk_darr.(idx) then get_len_loop_sum (idx + 1) result
else
let len_loop = get_len_loop idx idx 0 in
get_len_loop_sum (idx + 1) (result + len_loop)
)
in
let len_loop = get_len_loop_sum 0 0 |> num_of_int in
k >=/ len_loop && mod_num (k -/ len_loop) (Int 2) = (Int 0)
let () =
let k = read_line ()
|> fun l -> Scanf.sscanf l "%s %s" (fun s1 s2 -> num_of_string s2)
and darr = read_line ()
|> Str.split (Str.regexp_string " ")
|> List.map int_of_string
|> List.map (( + ) (-1))
|> Array.of_list
in
solve k darr
|> (function | true -> "YES" | false -> "NO")
|> print_endline