結果
| 問題 |
No.405 ローマ数字の腕時計
|
| ユーザー |
|
| 提出日時 | 2018-01-14 20:06:28 |
| 言語 | Haskell (9.10.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 773 bytes |
| コンパイル時間 | 4,846 ms |
| コンパイル使用メモリ | 171,904 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-24 03:04:13 |
| 合計ジャッジ時間 | 6,250 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 RE * 6 |
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default [1 of 2] Compiling Main ( Main.hs, Main.o ) [2 of 2] Linking a.out
ソースコード
import Control.Applicative ((<$>))
main :: IO ()
main = do
solve <$> getl words >>= putStrLn
solve :: [String] -> String
solve [s1, st] = let t = read st
in toRoman . (`mod` 12) $ fromRoman s1 + t
toRoman :: Int -> String
toRoman 1 = "I"
toRoman 2 = "II"
toRoman 3 = "III"
toRoman 4 = "IIII"
toRoman 5 = "V"
toRoman 6 = "VI"
toRoman 7 = "VII"
toRoman 8 = "VIII"
toRoman 9 = "IX"
toRoman 10 = "X"
toRoman 11 = "XI"
toRoman 12 = "XII"
fromRoman :: String -> Int
fromRoman "I" = 1
fromRoman "II" = 2
fromRoman "III" = 3
fromRoman "IIII" = 4
fromRoman "V" = 5
fromRoman "VI" = 6
fromRoman "VII" = 7
fromRoman "VIII" = 8
fromRoman "IX" = 9
fromRoman "X" = 10
fromRoman "XI" = 11
fromRoman "XII" = 12
getl :: (String -> a) -> IO a
getl f = f <$> getLine