fork(2) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int rome2arab(string r) {
  7. int p = 0, d = 0, v;
  8.  
  9. for (auto i : r) {
  10. switch (i) {
  11. case 'M': v = 1000; break; case 'D': v = 500; break;
  12. case 'C': v = 100; break; case 'L': v = 50; break;
  13. case 'X': v = 10; break; case 'V': v = 5; break;
  14. case 'I': v = 1; break; default: throw "error"; }
  15.  
  16. if (p && p < v)
  17. d -= 2 * p, p = 0;
  18. else
  19. p = v;
  20. d += v;
  21. }
  22.  
  23. return d;
  24. }
  25.  
  26. int main (void) {
  27. string x;
  28.  
  29. cin >> x;
  30. cout << rome2arab(x);
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 3032KB
stdin
DCXCV
stdout
695