#P3353. Nuevo-Romano
Nuevo-Romano
Description
``The system of Roman numerals is a numeral system originating from ancient Rome, and was adapted from Etruscan numerals. The system used in classical antiquity was slightly modified in the Middle Ages to produce the system we use today. It is based on certain letters which are given values as numerals." (From wikipedia.org)
Since ACM is where innovation starts, a new numeral system, called Nuevo-Romano, is derived from the Roman numerals with one slight modification. The basic set of Roman Numeral systems are:
- I or i for one
- V or v for five
- X or x for ten
- L or l for fifty
- C or c for one hundred
- D or d for five hundred
- M or m for one thousand
Nuevo-Romano extends it by adding `O' or `o' to mean multiplied by one thousand. However, the new numeral is only applied to numerals greater than 3 or III or iii, e.g.
- IVO or ivo for four thousand
- VO or vo for five thousand
- XO or xo for ten thousand
- MO or mo for one million
The same rules for multiple symbol combinations to produce numbers between these values are applied.
- The number is written using the symbols with the symbol of highest value as the first numeral followed by a symbol of lower value except in special cases as defined below. Example: MMMDCCCLXXVIII = 3,878.
- The I or i, X or x, C or c and M or m can be repeated up to a maximum of three times, e.g. III or iii for three, XXX or xxx for thirty, CC or cc for two hundred and MM or mm for two thousand.
- V, L and D can only be used once.
- I, X and C can appear before a larger symbol to indicate subtraction. Only the following are allowed:
IV = 5 - 1 = 4
IX = 10 - 1 = 9
XL = 50 - 10 = 40
XC = 100 - 10 = 90
CD = 500 - 100 = 400
The task is to determine the sum of two Nuevo-Romano numbers and output both the Nuevo-Romano number and the Latin alphabet-based Arabic number.
Input
Each line in the input consists of two Nuevo-Romano numbers separated by a `+' sign. The input is in mixed case. If the given Nuevo-Romano number is not a valid one, print ``INVALID" in the line.
No strings presumed to be a Nuevo-Romano number will exceed 100 in length.
Output
The sum expressed as a Nuevo-Romano number in uppercase and its Arabic number form separated by an `=' sign.
XLII+CC
MODccXLIX+cxi
COD+IC
LXIIOCCLXXXVIII+IVOCXX
CCXLII=242
MODCCCLX=1000860
INVALID
LXVIOCDVIII=66408
Hint
1. multiple 'O' is allowed
2. 'O' followed by 'M' is invalid