import java.nio.file.*;
import java.util.*;

public class Euler89 {
    static int romanToInt(String s) {
        Map<Character, Integer> v = Map.of('I', 1, 'V', 5, 'X', 10, 'L', 50, 'C', 100, 'D', 500, 'M', 1000);
        int total = 0;
        for (int i = 0; i < s.length(); i++)
            total += (i + 1 < s.length() && v.get(s.charAt(i)) < v.get(s.charAt(i + 1))) ? -v.get(s.charAt(i))
                    : v.get(s.charAt(i));
        return total;
    }

    static String intToRoman(int n) {
        int[] vals = { 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 };
        String[] syms = { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" };
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < vals.length; i++)
            while (n >= vals[i]) {
                sb.append(syms[i]);
                n -= vals[i];
            }
        return sb.toString();
    }

    public static void main(String[] args) throws Exception {
        List<String> lines = Files.readAllLines(Path.of("resources/documents/0089_roman.txt"));
        int saved = 0;
        for (String line : lines) {
            line = line.trim();
            if (line.isEmpty())
                continue;
            saved += line.length() - intToRoman(romanToInt(line)).length();
        }
        System.out.println(saved);
    }
}
