結果
問題 | No.548 国士無双 |
ユーザー |
![]() |
提出日時 | 2017-08-17 19:44:58 |
言語 | OCaml (5.2.1) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 760 bytes |
コンパイル時間 | 392 ms |
コンパイル使用メモリ | 20,860 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-09 00:26:45 |
合計ジャッジ時間 | 1,152 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 WA * 1 |
ソースコード
let () = let t = Array.make 13 0 in let s = read_line () in let rec doit i = if i = 13 then true else let x = Char.code s.[i] - Char.code 'a' in if x < 0 || x > 12 then false else begin t.(x) <- t.(x) + 1; doit (i + 1) end in if not (doit 0) then print_endline "Impossible" else let m = Array.fold_left max 0 t in if m > 2 then print_endline "Impossible" else if m = 2 then begin let rec doit i = if i = 13 then assert false else if t.(i) = 0 then i + Char.code 'a' |> Char.chr |> Printf.printf "%c\n" else doit (i + 1) in doit 0 end else begin for i = 0 to 12 do i + Char.code 'a' |> Char.chr |> Printf.printf "%c\n" done end