結果
問題 | 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_518l=[(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=0a=[]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 resdef int2roman(n):res = ''for num, roman in l:res+=roman*(n/num)n%=numreturn resn=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)