結果
| 問題 |
No.405 ローマ数字の腕時計
|
| コンテスト | |
| ユーザー |
guricerin
|
| 提出日時 | 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 System
open System.Collections.Generic
[<AutoOpen>]
module Cin =
let read f = stdin.ReadLine() |> f
let reada f = stdin.ReadLine().Split() |> Array.map f
let readChars() = read string |> Seq.toArray
let 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 s
let println (s: string) = writer.WriteLine s
let inline puts (s: ^a) = string s |> println
let 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 -1
let t = abs t
sign * (t % 12)
let toRome t =
let t = t % 12
let t =
if t >= 0 then t else t + 12
match 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 string
let t = Convert.ToInt32(t) |> toMod
let s = s |> toInt
s + t
|> toRome
|> puts
[<EntryPoint>]
let main _ =
try
solve()
with e -> printfn "%s" (e.ToString())
writer.Close()
0 // return an integer exit code
guricerin