結果
| 問題 | No.518 ローマ数字の和 |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-08-24 08:43:17 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 69 ms / 2,000 ms |
| + 108µs | |
| コード長 | 900 bytes |
| 記録 | |
| コンパイル時間 | 282 ms |
| コンパイル使用メモリ | 95,980 KB |
| 実行使用メモリ | 78,780 KB |
| 最終ジャッジ日時 | 2026-08-24 08:43:22 |
| 合計ジャッジ時間 | 2,993 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
D = {"I":1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000}
N = int(input())
A = list(input().split())
cnt = 0
for j in range(N):
r = A[j]
for i in range(len(r)-1):
if D[r[i]]>=D[r[i+1]]:
cnt += D[r[i]]
else:
cnt -= D[r[i]]
cnt += D[r[-1]]
if cnt>=4000:
print("ERROR")
else:
ans = ""
r = cnt
q = r//1000
r = r%1000
ans += "M"*q
q = r//100
r = r%100
if q==9:
ans += "CM"
elif q>=5:
ans += "D"+"C"*(q-5)
elif q==4:
ans += "CD"
else:
ans += "C"*q
q = r//10
r = r%10
if q==9:
ans += "XC"
elif q>=5:
ans += "L"+"X"*(q-5)
elif q==4:
ans += "XL"
else:
ans += "X"*q
if r==9:
ans += "IX"
elif r>=5:
ans += "V"+"I"*(r-5)
elif r==4:
ans += "IV"
else:
ans += "I"*r
print(ans)