Олимпиадный тренинг

Задача . Римские числа


Задача

Темы:
Один древнеримский торговец брал несколько раз ссуду в древнеримском банке. Каждый раз банкир записывал размер выданной ссуды на листе пергамента, используя римские числа. Но ввиду дороговизны пергамента запись производилась плотно и все числа оказались записанными подряд, без разделителей. Когда торговец пришёл возвращать ссуду, оказалось, что невозможно установить разбиение записи на отдельные числа.

Например, если на пергаменте записана строка «XIIV», её можно разбить на римские числа разными способами, например, XI + IV = 11 + 4 = 15 или XII + V = 12 + 5 = 17 возможны и другие варианты разбиения. 

Торговец хочет вернуть как можно меньше денег, поэтому он хочет разбить строку цифр на корректные римские числа так, чтобы сумма всех чисел была как можно меньше.

Вам необходимо решить задачу для следующих пяти строк.
VXIVVIX
CXLVLXC
XIXCXIXL
XCMLXCD
VLMIXCD

Запишите в ответе пять чисел (арабскими цифрами в десятичной системе счисления), каждое число в отдельной строке – ответы для данных пяти строк точно в таком же порядке.
Например, для строки «XIIV» ответом будет число 15. Если вы не можете дать ответ для какой-либо строки, напишите в ответе для этой строки число 0.

 
Правила записи римских чисел
Римскими цифрами можно записать целые числа от 1 до 3999. Число представляется в виде суммы тысяч, сотен, десятков и единиц. Далее из следующей таблицы берётся по одному элементу, соответствующему тысячам, сотням, десяткам, единицам ровно в таком порядке.
 
 
Цифра Тысячи Сотни Десятки Единицы
1 M C X I
2 MM CC XX II
3 MMM CCC XXX III
4   CD XL IV
5   D L V
6   DC LX VI
7   DCC LXX VII
8   DCCC LXXX VIII
9   CM XC IX



time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя