結果

問題 No.405 ローマ数字の腕時計
ユーザー tanson
提出日時 2025-09-30 08:46:35
言語 Standard ML
(MLton 20210117)
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 781 bytes
コンパイル時間 3,088 ms
コンパイル使用メモリ 691,708 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-09-30 08:46:40
合計ジャッジ時間 4,576 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

fun readStr () =
    let
        fun scan reader stream = SOME (StringCvt.splitl (not o Char.isSpace) reader (StringCvt.skipWS reader stream))
    in
        valOf (TextIO.scanStream scan TextIO.stdIn)
    end


fun readInt () =
    valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn)


fun findIndex x nil = ~1
  | findIndex x (h::tl) = 
    if x = h then 0
    else 1 + findIndex x tl


val () =
    let
        val s1 = readStr ()
        val t = readInt ()

        val l = ["XII", "I","II","III","IIII","V","VI","VII","VIII","IX","X","XI"]
        val tempIndex = (t + findIndex s1 l) mod 12

        val index = if tempIndex < 0 then 12 + tempIndex
                  else tempIndex

        val ans = List.nth (l, index)
    in
        print (ans ^ "\n")
    end
0