2000 LSU Computer Science High School Programming Contest
Problem 6: Roman Numerals

MAIN
  Home
  Schedule
  Rules
  Compile

RESULTS
  Results

PROBLEMS
  Novice
  Veteran
  All

  

The original system of writing numbers used by the early Romans was simple but cumbersome. Various letters were used to represent important numbers, and these were then strung together to represent other numbers with the values decreasing monotonically from left to right. The letters they used and the numbers that were represented are given in the following table.

I1
V5
X10
L50
C100
D500
M1000

Thus 1993 was written as MDCCCCLXXXXIII. This system was then superseded by a partially place-oriented system, whereby if the above rule of decreasing values was broken, it meant that the immediately preceding (lower) value was deemed to be `negative' and was subtracted from the higher (out of place) value. In this system 1993 was usually written as MCMXCIII. There is still some controversy as to which letters could precede which other letters, but for the purposes of this problem we will assume the following restrictions:

  1. A letter can never appear more than three times in a row, and there can never be more than one other occurrence of that letter.
  2. Once a letter has been used in a `negative' position, all subsequent characters (apart from the one immediately following) may not be greater than that character.

Thus we could write MXMIII for 1993 or CCXCIV for 294, however we could not write ILV for 54. Note that 299 could be written as CCXCIX or CCIC.

Write a program that will read in sums in Roman numerals and determine whether or not they are correct as Roman sums. Assume that zero will never appear on its own or as a leading digit.

Input

Input will consist of a series of lines, each line consisting of an apparent Roman sum, i.e. a valid Roman number, a plus sign (+), another valid Roman number, an equal sign (=) and another valid Roman number. No Roman number will contain more than 9 letters. The file will be terminated by a line consisting of a single #.

Output

Output will consist of a series of lines, one for each line of the input with either correct or incorrect on it. Output correct if the equality is true. Output incorrect if the equality is false.

Sample input

V+V=X
X+X=XX
XX+XX=MXC
#

Sample output

Correct
Correct
Incorrect



The statements and opinions included in these pages are those of the LSU Computer Science High School Programming Contest Staff only. Any statements and opinions included in these pages are not those of Louisiana State University or the LSU Board of Supervisors.

© 2000 LSU Computer Science High School Programming Contest

This page last updated 2001/04/05 20:28:18.