fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. string c1, c2;
  9. int l = 0;
  10. string wynik;
  11.  
  12. cin >> c1 >> c2;
  13.  
  14. for (int i = 0; i < c1.size(); i++)
  15. {
  16. if (c1[i] == 'I')
  17. {
  18. if (i == c1.size() - 1 || c1[i + 1] == 'I')
  19. l += 1;
  20. else
  21. l -= 1;
  22. }
  23. else if (c1[i] == 'V')
  24. l += 5;
  25. else if (c1[i] == 'X')
  26. {
  27. if (i == c1.size() - 1 || c1[i + 1] == 'I' || c1[i + 1] == 'V' || c1[i + 1] == 'X')
  28. l += 10;
  29. else
  30. l -= 10;
  31. }
  32. else if (c1[i] == 'L')
  33. l += 50;
  34. else if (c1[i] == 'C')
  35. {
  36. if (i == c1.size() - 1 || c1[i + 1] == 'I' || c1[i + 1] == 'V' || c1[i + 1] == 'X' || c1[i + 1] == 'L' || c1[i + 1] == 'C')
  37. l += 100;
  38. else
  39. l -= 100;
  40. }
  41. else if (c1[i] == 'D')
  42. l += 500;
  43. else if (c1[i] == 'M')
  44. l += 1000;
  45. }
  46. for (int i = 0; i < c2.size(); i++)
  47. {
  48. if (c2[i] == 'I')
  49. {
  50. if (i == c2.size() - 1 || c2[i + 1] == 'I')
  51. l += 1;
  52. else
  53. l -= 1;
  54. }
  55. else if (c2[i] == 'V')
  56. l += 5;
  57. else if (c2[i] == 'X')
  58. {
  59. if (i == c2.size() - 1 || c2[i + 1] == 'I' || c2[i + 1] == 'V' || c2[i + 1] == 'X')
  60. l += 10;
  61. else
  62. l -= 10;
  63. }
  64. else if (c2[i] == 'L')
  65. l += 50;
  66. else if (c2[i] == 'C')
  67. {
  68. if (i == c2.size() - 1 || c2[i + 1] == 'I' || c2[i + 1] == 'V' || c2[i + 1] == 'X' || c2[i + 1] == 'L' || c2[i + 1] == 'C')
  69. l += 100;
  70. else
  71. l -= 100;
  72. }
  73. else if (c2[i] == 'D')
  74. l += 500;
  75. else if (c2[i] == 'M')
  76. l += 1000;
  77. }
  78.  
  79. if (l <= 2000 && l >= 1000)
  80. {
  81. if (l == 2000)
  82. wynik += "MM";
  83. else if (l < 2000 && l >= 1000)
  84. wynik += "M";
  85.  
  86. l %= 1000;
  87. }
  88. if (l >= 100 && l <= 999)
  89. {
  90. if (l >= 900)
  91. wynik += "CM";
  92. else if (l >= 800 && l <= 899)
  93. wynik += "DCCC";
  94. else if (l >= 700 && l <= 799)
  95. wynik += "DCC";
  96. else if (l >= 600 && l <= 699)
  97. wynik += "DC";
  98. else if (l >= 500 && l <= 599)
  99. wynik += "D";
  100. else if (l >= 400 && l <= 499)
  101. wynik += "CD";
  102. else if (l >= 300 && l <= 399)
  103. wynik += "CCC";
  104. else if (l >= 200 && l <= 299)
  105. wynik += "CC";
  106. else if (l >= 100 && l <= 199)
  107. wynik += "C";
  108.  
  109. l %= 100;
  110. }
  111. if (l >= 10 && l <= 99)
  112. {
  113. if (l >= 90)
  114. wynik += "XC";
  115. else if (l >= 80 && l <= 89)
  116. wynik += "LXXX";
  117. else if (l >= 70 && l <= 79)
  118. wynik += "LXX";
  119. else if (l >= 60 && l <= 69)
  120. wynik += "LX";
  121. else if (l >= 50 && l <= 59)
  122. wynik += "L";
  123. else if (l >= 40 && l <= 49)
  124. wynik += "XL";
  125. else if (l >= 30 && l <= 39)
  126. wynik += "XXX";
  127. else if (l >= 20 && l <= 29)
  128. wynik += "XX";
  129. else if (l >= 10 && l <= 19)
  130. wynik += "X";
  131.  
  132. l %= 10;
  133. }
  134. if (l <= 9 && l > 0)
  135. {
  136. if (l == 9)
  137. wynik += "IX";
  138. else if (l == 8)
  139. wynik += "VIII";
  140. else if (l == 7)
  141. wynik += "VII";
  142. else if (l == 6)
  143. wynik += "VI";
  144. else if (l == 5)
  145. wynik += "V";
  146. else if (l == 4)
  147. wynik += "IV";
  148. else if (l == 3)
  149. wynik += "III";
  150. else if (l == 2)
  151. wynik += "II";
  152. else if (l == 1)
  153. wynik += "I";
  154. }
  155.  
  156. cout << wynik << endl;
  157.  
  158. cin.get(); cin.get();
  159. return 0;
  160. }
Success #stdin #stdout 0s 4376KB
stdin
CXXIII CCLVI
stdout
CCCLXXIX