#include<cstdio> char s[14], t[][3] = { "IV","XL","CD","M" }; int r, w[128]; int main() { w['I'] = 1; w['V'] = 5; w['X'] = 10; w['L'] = 50; w['C'] = 100; w['D'] = 500; w['M'] = 1000; for (int i = 2; i--;) { scanf("%s", s); for (int j = 0; s[j]; j++) r += s[j + 1] && w[s[j + 1]]>w[s[j]] ? -w[s[j]] : w[s[j]]; } printf("%d\n", r); for (int i = 1000, j = 3; i; i /= 10, j--) { if (r / i == 9) printf("%c%c", t[j][0], t[j + 1][0]); else if (r / i >= 5) { putchar(t[j][1]); for (int k = 5; k < r / i; k++) putchar(t[j][0]); } else if (r / i == 4) printf("%c%c", t[j][0], t[j][1]); else { for (int k = 0; k < r / i; k++) putchar(t[j][0]); } r %= i; } return 0; }
2608번: 로마 숫자
https://www.acmicpc.net/problem/2608
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기