UVA185 Roman Numerals

题目描述

早期罗马人使用简单但是繁琐的原始数字。他们使用许多字母来表示特定的数字,然后再用字母代表的数值**从左到右递减**的方式拼接字母来表示其他的数字。他们使用的字母所代表的数字如下表所示。 因此,$1993$被写成$MDCCCCLXXXXIII$。之后,该规则被取代。根据新规,如果在一个数字中字母数值单调递减的规律被打破了,那么这个位于前面的较小数值将**被认为是负数**,它后面那个较大数值**应当减去它**。这样,$1993$被写成$MCMXCIII$。对于什么字母应该排在其他字母前面,我们暂定以下规则: 1. 左栏的字母**不能连续出现超过3次**,并且一个字母**只能连续出现一次**。 2. 右栏的字母**不能连续出现**。 3. 如果一个字母曾经**作为负数出现**,那么除了它之后紧接的那个字母外,它之后其他字母的数值都**必须比它小**。 列举一些正确的例子:$1993$是$MXMIII$,$294$应是$CCXCIV$;错误的例子:$54$不是$ILV$,$99$不是$LIL$。**特别的,299可以被写成CCXCIX或是CCIC。** 罗马加法式$V+V=X$可以被翻译成**不明确的**阿拉伯数字加法式,因为当V∈{1,2,3,4}并且X=2*V时它都成立。$X+X=XX$是一个正确罗马加法式,它却是一个**不成立的**阿拉伯数字加法式。 如果**不考虑X=0**的情况,那么$XX+XX=MXC$就是一个错误的罗马加法式,尽管当M=1,X=9,C=8时它是一个正确的阿拉伯数字加法式。 编写一个程序来判断给定的罗马加法式**是不是正确**,并判断它翻译成阿拉伯数字加法式时是**正确的**、**不明确的**还是**不成立的**。 输入数据保证0不会单独出现,也不会有前导0。保证不会有两个字母对应同一个数字。

输入格式

共若干行,每行有一个罗马数字加法式。保证每个罗马数字不超过9个字母。输入以一行“#”结束。

输出格式

对于每一个罗马数字加法式,输出一行,每行2个单词。第一个单词表示这个罗马加法式的正确性(Correct, Incorrect),第二个单词表示这个式子翻译成阿拉伯数字加法式后的情况:不成立,不明确,成立(impossible, ambiguous, valid)。两个单词之间用一个空格隔开。