[BOJ 6769] Aromatic Numbers

View as PDF

Submit solution

Points: 1
Time limit: 2.0s
Memory limit: 512M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

This question involves calculating the value of aromatic numbers which are a combination of Arabic digits and Roman numerals.</p>

An aromatic number is of the form ARARAR . . . AR, where each A is an Arabic digit, and each R is a Roman numeral. Each pair AR contributes a value described below, and by adding or subtracting these values together we get the value of the entire aromatic number.

An Arabic digit A can be 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9. A Roman numeral R is one of the seven letters I, V, X, L, C, D, or M. Each Roman numeral has a base value:

Symbol I V X L C D M
Base value 1 5 10 50 100 500 1000

The value of a pair AR is A times the base value of R. Normally, you add up the values of the pairs to get the overall value. However, wherever there are consecutive symbols ARA0R0 with R0 having a strictly bigger base value than R, the value of pair AR must be subtracted from the total, instead of being added.

For example, the number 3M1D2C has the value 3 ∗ 1000 + 1 ∗ 500 + 2 ∗ 100 = 3700 and 3X2I4X has the value 3 ∗ 10 − 2 ∗ 1 + 4 ∗ 10 = 68.

Write a program that computes the values of aromatic numbers.

입력 형식

The input is a valid aromatic number consisting of between 2 and 20 symbols.

출력 형식

The output is the decimal value of the given aromatic number.

예제 입력 1

3M1D2C

예제 출력 1

3700

예제 입력 2

2I3I2X9V1X

예제 출력 2

-16

Comments

There are no comments at the moment.