結果
問題 | No.518 ローマ数字の和 |
ユーザー |
![]() |
提出日時 | 2024-01-21 01:20:07 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 31 ms / 2,000 ms |
コード長 | 1,165 bytes |
コンパイル時間 | 262 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-09-28 05:47:59 |
合計ジャッジ時間 | 1,766 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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=input().split()ANS=0for a in A:ind=0while ind<len(a):if ind+1<len(a) and D[a[ind]]<D[a[ind+1]]:ANS+=D[a[ind+1]]-D[a[ind]]ind+=2else:ANS+=D[a[ind]]ind+=1if ANS>=4000:print("ERROR")exit()LS=""while ANS:if ANS>=1000:LS+="M"ANS-=1000elif ANS>=900:LS+="CM"ANS-=900elif ANS>=500:LS+="D"ANS-=500elif ANS>=400:LS+="CD"ANS-=400elif ANS>=100:LS+="C"ANS-=100elif ANS>=90:LS+="XC"ANS-=90elif ANS>=50:LS+="L"ANS-=50elif ANS>=40:LS+="XL"ANS-=40elif ANS>=10:LS+="X"ANS-=10elif ANS>=9:LS+="IX"ANS-=9elif ANS>=5:LS+="V"ANS-=5elif ANS>=4:LS+="IV"ANS-=4elif ANS>=1:LS+="I"ANS-=1print(LS)