package com.javarush.task.task37.task3714;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

/*
Древний Рим
*/
public class Solution {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Input a roman number to be converted to decimal: ");
        String romanString = bufferedReader.readLine();
        System.out.println("Conversion result equals " + romanToInteger(romanString));
    }

    public static int romanToInteger(String s) {
        int result = 0;

        Map <Character, Integer> letters = new LinkedHashMap<>();
        letters.put('I', 1);   letters.put('V', 5);   letters.put('X', 10);   letters.put('L', 50);   letters.put('C', 100);   letters.put('D', 500);   letters.put('M', 1000);

        for (int i = 0; i < s.length(); ++i) {
            int numCurrent = letters.get(s.charAt(i)), numNext = letters.get(s.charAt(i + 1));

            if(i == (s.length() - 2) && (numCurrent >= numNext )) {
                result += numCurrent + numNext;
                break;
            }

            if(numCurrent < numNext) {
                result += numNext - numCurrent;
                ++i;
            }

            else
                result += numCurrent;
        }

        return result;
    }
}