結果
問題 | No.479 頂点は要らない |
ユーザー | ichibanshibori |
提出日時 | 2017-01-30 01:02:26 |
言語 | OCaml (5.1.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,008 bytes |
コンパイル時間 | 310 ms |
コンパイル使用メモリ | 18,176 KB |
最終ジャッジ日時 | 2024-11-14 19:55:50 |
合計ジャッジ時間 | 1,238 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
File "Main.ml", line 24, characters 23-33: 24 | if buy_flg then (String.set ans (n - 2 - idx) '1'); ^^^^^^^^^^ Error: Unbound value String.set Hint: Did you mean get?
ソースコード
let readln_t2_by f = let ( @@ ) lst n = List.nth lst n in read_line () |> Str.split (Str.regexp_string " ") |> List.map f |> fun lst -> (lst @@ 0, lst @@ 1) let solve n arr = let tbl = Hashtbl.create n and ans = String.make (n - 1) '0' in Hashtbl.add tbl (n - 1) false; let rec solve' idx = if idx < 0 then () else ( let buy_flg = List.exists (fun b -> not (Hashtbl.find tbl b)) arr.(idx) in Hashtbl.add tbl idx buy_flg; if buy_flg then (String.set ans (n - 2 - idx) '1'); solve' (idx - 1) ) in solve' (n - 2); let sidx = String.index ans '1' in String.sub ans sidx (n - 1 - sidx) let () = let n, m = readln_t2_by int_of_string in let ab_arr = Array.make (n - 1) [] and ab_st = Stream.from ( fun i -> if i < m then let a, b = readln_t2_by int_of_string in Some(a, b) else None) in Stream.iter (fun (a, b) -> ab_arr.(a) <- b :: ab_arr.(a)) ab_st; solve n ab_arr |> print_endline