結果
| 問題 | No.112 ややこしい鶴亀算 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-04-26 00:29:19 |
| 言語 | Standard ML (MLton 20241230) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 1,671 bytes |
| 記録 | |
| コンパイル時間 | 2,640 ms |
| コンパイル使用メモリ | 704,360 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-04-26 00:29:29 |
| 合計ジャッジ時間 | 3,406 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 23 |
ソースコード
fun readInt () =
valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn)
fun member x nil = false
| member x (h::tl) =
if x = h
then true
else member x tl
fun asSet nil = nil
| asSet (h::tl) =
let
val set' = asSet tl
in
if member h set'
then set'
else h :: set'
end
val () =
let
val n = readInt ()
val a_s = List.tabulate (n, fn _ => readInt ())
val set = asSet a_s
val (ansCrane, ansTurtle) = if List.length set = 1
then
(
if List.hd set = (n - 1) * 2 then (n, 0)
else (0, n)
)
else
(
let
val (turtleValue, craneValue) = if List.nth (set, 0) < List.nth (set, 1)
then (List.nth (set, 0), List.nth (set, 1))
else (List.nth (set, 1), List.nth (set, 0))
in
List.foldl (fn (a, (craneAcc, turtleAcc)) =>
if a = craneValue
then (craneAcc + 1, turtleAcc)
else (craneAcc, turtleAcc + 1))
(0, 0)
a_s
end
)
in
print (Int.toString ansCrane ^ " " ^ Int.toString ansTurtle ^ "\n")
end