結果
問題 | No.405 ローマ数字の腕時計 |
ユーザー |
![]() |
提出日時 | 2020-01-08 09:28:01 |
言語 | F# (F# 4.0) |
結果 |
AC
|
実行時間 | 64 ms / 2,000 ms |
コード長 | 1,562 bytes |
コンパイル時間 | 8,766 ms |
コンパイル使用メモリ | 201,480 KB |
実行使用メモリ | 31,872 KB |
最終ジャッジ日時 | 2024-07-06 19:26:08 |
合計ジャッジ時間 | 11,397 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
コンパイルメッセージ
復元対象のプロジェクトを決定しています... /home/judge/data/code/main.fsproj を復元しました (253 ms)。 MSBuild のバージョン 17.9.6+a4ecab324 (.NET) /home/judge/data/code/Main.fs(62,9): warning FS0025: この式のパターン マッチが不完全です たとえば、値 '[|_; _; _|]' はパターンに含まれないケースを示す可能性があります。 [/home/judge/data/code/main.fsproj] main -> /home/judge/data/code/bin/Release/net8.0/main.dll main -> /home/judge/data/code/bin/Release/net8.0/publish/
ソースコード
open Systemopen System.Collections.Generic[<AutoOpen>]module Cin =let read f = stdin.ReadLine() |> flet reada f = stdin.ReadLine().Split() |> Array.map flet readChars() = read string |> Seq.toArraylet readInts() = readChars() |> Array.map (fun x -> Convert.ToInt32(x.ToString()))[<AutoOpen>]module Cout =let writer = new IO.StreamWriter(new IO.BufferedStream(Console.OpenStandardOutput()))let print (s: string) = writer.Write slet println (s: string) = writer.WriteLine slet inline puts (s: ^a) = string s |> printlnlet toInt s =match s with| "XII" -> 0| "I" -> 1| "II" -> 2| "III" -> 3| "IIII" -> 4| "V" -> 5| "VI" -> 6| "VII" -> 7| "VIII" -> 8| "IX" -> 9| "X" -> 10| "XI" -> 11| _ -> invalidArg "s" "hoge"let toMod t =let sign =if t >= 0 then 1 else -1let t = abs tsign * (t % 12)let toRome t =let t = t % 12let t =if t >= 0 then t else t + 12match t with| 0 -> "XII"| 1 -> "I"| 2 -> "II"| 3 -> "III"| 4 -> "IIII"| 5 -> "V"| 6 -> "VI"| 7 -> "VII"| 8 -> "VIII"| 9 -> "IX"| 10 -> "X"| 11 -> "XI"| _ -> invalidArg "t" "hoge"let solve() =let [| s; t |] = reada stringlet t = Convert.ToInt32(t) |> toModlet s = s |> toInts + t|> toRome|> puts[<EntryPoint>]let main _ =trysolve()with e -> printfn "%s" (e.ToString())writer.Close()0 // return an integer exit code