結果
| 問題 |
No.518 ローマ数字の和
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-05-28 21:45:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 840 bytes |
| コンパイル時間 | 137 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 19,232 KB |
| 最終ジャッジ日時 | 2024-09-21 15:21:55 |
| 合計ジャッジ時間 | 4,434 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | -- * 3 |
| other | AC * 8 TLE * 1 -- * 10 |
コンパイルメッセージ
Main.rb:38: warning: assigned but unused variable - n Syntax OK
ソースコード
@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
next if x % 10 == 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(:+))