結果
問題 | No.518 ローマ数字の和 |
ユーザー |
|
提出日時 | 2017-06-02 13:17:55 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 13 ms / 2,000 ms |
コード長 | 650 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 6,912 KB |
実行使用メモリ | 6,272 KB |
最終ジャッジ日時 | 2024-09-21 22:10:16 |
合計ジャッジ時間 | 1,154 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#yuki_518 l=[(1000, 'M'), (900, 'CM'), (500, 'D'), (400, 'CD'), (100, 'C'), (90, 'XC'),(50, 'L'), (40, 'XL'), (10, 'X'), (9, 'IX'), (5, 'V'), (4, 'IV'), (1, 'I')] def roman2int(s): res=0 a=[] for i in range(len(s)): for j in xrange(len(l)): if s[i]==l[j][1]: a.append(l[j][0]) a.append(0) for i in range(len(s)): if a[i]>=a[i+1]: res+=a[i] else: res-=a[i] return res def int2roman(n): res = '' for num, roman in l: res+=roman*(n/num) n%=num return res n=int(raw_input()) lr=raw_input().split() li=[] for i in xrange(n): li.append(roman2int(lr[i])) sm=sum(li) if sm>3999: print 'ERROR' else: print int2roman(sm)