結果

問題 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/

ソースコード

diff #
プレゼンテーションモードにする

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
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0