結果

問題 No.518 ローマ数字の和
ユーザー char134217728
提出日時 2017-08-20 13:17:05
言語 Ruby
(3.4.1)
結果
AC  
実行時間 91 ms / 2,000 ms
コード長 727 bytes
コンパイル時間 64 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,160 KB
最終ジャッジ日時 2024-10-14 17:23:42
合計ジャッジ時間 3,055 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

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

m = {
"" => 0,
"I" => 1,
"II" => 2,
"III" => 3,
"IV" => 4,
"V" => 5,
"VI" => 6,
"VII" => 7,
"VIII" => 8,
"IX" => 9,
"X" => 10,
"XX" => 20,
"XXX" => 30,
"XL" => 40,
"L" => 50,
"LX" => 60,
"LXX" => 70,
"LXXX" => 80,
"XC" => 90,
"C" => 100,
"CC" => 200,
"CCC" => 300,
"CD" => 400,
"D" => 500,
"DC" => 600,
"DCC" => 700,
"DCCC" => 800,
"CM" => 900,
"M" => 1000,
"MM" => 2000,
"MMM" => 3000
}
gets
s = 0
gets.split(" ").each do |_s|
_s =~ /\A(M*)(CM|D|CD|)(C*)(XC|L|XL|)(X*)(IX|V|IV|)(I*)\z/
(1..7).each do |i|
s += m[$~[i]]
end
end
if s > 3999
puts :ERROR
exit
end
m = m.invert
t = ""
[1000, 100, 10, 1].each do |i|
t << m[s / i * i]
s %= i
end
puts t
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0