/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println(roman2Decimal
("XXIV"));
System.
out.
println(roman2Decimal
("XXIX")); }
public static int roman2Decimal
(String roman
){ if (roman.length() == 0)
return 0;
int integerValue = 0;
int prevNumber = letterToNumber(roman.charAt(0));
for (int i = 1; i < roman.length(); i++) {
char ch = roman.charAt(i);
int number = letterToNumber(ch);
if (number >= prevNumber)
integerValue += prevNumber;
else
integerValue -= prevNumber;
prevNumber = number;
}
integerValue += prevNumber;
return integerValue;
}
private static int letterToNumber(char letter){
switch (letter) {
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return -1;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocm9tYW4yRGVjaW1hbCgiWFhJViIpKTsKICAgICAgICAKICAgICAgICAKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocm9tYW4yRGVjaW1hbCgiWFhJWCIpKTsKCX0KCQoJCiAgICBwdWJsaWMgc3RhdGljIGludCByb21hbjJEZWNpbWFsKFN0cmluZyByb21hbil7CiAgICAgICAgaWYgKHJvbWFuLmxlbmd0aCgpID09IDApCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGludCBpbnRlZ2VyVmFsdWUgPSAwOwogICAgICAgIGludCBwcmV2TnVtYmVyID0gbGV0dGVyVG9OdW1iZXIocm9tYW4uY2hhckF0KDApKTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJvbWFuLmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgICAgY2hhciBjaCA9IHJvbWFuLmNoYXJBdChpKTsKICAgICAgICAgICAgaW50IG51bWJlciA9IGxldHRlclRvTnVtYmVyKGNoKTsKICAgICAgICAgICAgaWYgKG51bWJlciA+PSBwcmV2TnVtYmVyKQogICAgICAgICAgICAgICAgaW50ZWdlclZhbHVlICs9IHByZXZOdW1iZXI7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGludGVnZXJWYWx1ZSAtPSBwcmV2TnVtYmVyOwogICAgICAgICAgICBwcmV2TnVtYmVyID0gbnVtYmVyOwogICAgICAgIH0KICAgICAgICBpbnRlZ2VyVmFsdWUgKz0gcHJldk51bWJlcjsKICAgICAgICByZXR1cm4gaW50ZWdlclZhbHVlOwogICAgfQoKCiAgICBwcml2YXRlIHN0YXRpYyBpbnQgbGV0dGVyVG9OdW1iZXIoY2hhciBsZXR0ZXIpewogICAgICAgIHN3aXRjaCAobGV0dGVyKSB7CiAgICAgICAgICAgIGNhc2UgJ0knOiAgcmV0dXJuIDE7CiAgICAgICAgICAgIGNhc2UgJ1YnOiAgcmV0dXJuIDU7CiAgICAgICAgICAgIGNhc2UgJ1gnOiAgcmV0dXJuIDEwOwogICAgICAgICAgICBjYXNlICdMJzogIHJldHVybiA1MDsKICAgICAgICAgICAgY2FzZSAnQyc6ICByZXR1cm4gMTAwOwogICAgICAgICAgICBjYXNlICdEJzogIHJldHVybiA1MDA7CiAgICAgICAgICAgIGNhc2UgJ00nOiAgcmV0dXJuIDEwMDA7CiAgICAgICAgICAgIGRlZmF1bHQ6ICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgIH0KfQ==