3.0 KiB
Римские арифметические выражения
- Городская Олимпиада Молдовы по информатике
- Год: 2022
- Класс: 12
- Задача: 2
В римской системе счисления используется 7 цифр, представленные следующими буквами латинского алфавита: I, V, X, L, C, D и M. В детсятичной системе рассматриваемые цифры имеют следующие значения:
I - 1
V - 5
X - 10
L - 50
C - 100
D - 500
M - 1000
Напоминаем, что римская система счисления является непозиционной. Число, записанное в римской системе, читается слева направо. Десятичное значение числа определяется путем суммирования отдельных десятичных значений каждой из цифр, если только текущая цифра не предшествует цифре с более высоким значением. В этом случае десятичное значение текущей цифры вычитается из десятичного значения следующей цифры.
Примеры:
X - 10
IX - 9
XIII - 13
XIV - 14
MMCIX - 2109
MMXXII - 2022
Задание
Напишите программу для вычисления десятичного значения римских арифметических выражений.
Входные данные
Файл expresii.in содержит в единственной строке римское арифметическое выражение.
Выходные данные.
Файл expresii.out должен содержать в единственной строке целое число – значение римского арифметического выражения из входного файла, записанное в десятичной системе счисления.
Ограничения.
- Абсолютное десятичное значение римского арифметического выражения из входного файла не превышает
2 * 10^9. Ограничения на время выолнения и на объём используемой памяти приведены на странице "Общее описание задач". Исходный файл должен иметь одно из названийexpresii.pas,expresii.cилиexpresii.cpp
Пример 1
expresii.in
XIV*MMCIX-MMXXII+V*XL
expresii.out
27704