結果

問題 No.518 ローマ数字の和
ユーザー fine
提出日時 2017-05-28 21:46:29
言語 Ruby
(3.4.1)
結果
AC  
実行時間 89 ms / 2,000 ms
コード長 812 bytes
コンパイル時間 35 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 12,288 KB
最終ジャッジ日時 2024-09-21 15:22:06
合計ジャッジ時間 2,565 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:37: warning: assigned but unused variable - n
Syntax OK

ソースコード

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

@h = {?I => 1, ?V => 5, ?X => 10, ?L => 50, ?C => 100, ?D => 500, ?M => 1000}
@h2 = @h.invert
def hoge(r)
m = r.size
res = @h[r[m - 1]]
(m-1).times do |i|
if @h[r[i]] < @h[r[i + 1]]
res -= @h[r[i]]
else
res += @h[r[i]]
end
end
return res
end
def foo(x)
return "ERROR" if x >= 4000
res = ""
d = 1
while x > 0
if x % 10 == 9
res = @h2[d] + @h2[d * 10] + res
elsif x % 10 == 4
res = @h2[d] + @h2[d * 5] + res
elsif x % 10 > 4
res = @h2[d * 5] + @h2[d] * (x % 10 - 5) + res
else
res = @h2[d] * (x % 10) + res
end
x /= 10
d *= 10
end
return res
end
n = gets.to_i
puts foo(gets.chomp.split.map{|r| hoge(r)}.inject(:+))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0