結果
問題 |
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