using System;
using System.Collections.Generic;
public class Test
{
private static Dictionary<string, int> RomanNumbers = new Dictionary<string,int>
{
{"M", 1000},
{"CM", 900},
{"D", 500},
{"CD", 400},
{"C", 100},
{"XC", 90},
{"L", 50},
{"XL", 40},
{"X", 10},
{"IX", 9},
{"V", 5},
{"IV", 4},
{"I", 1}
};
public static int ConvertRomanNumtoInt(string strRomanValue)
{
int retVal = 0;
foreach (KeyValuePair<string, int> pair in RomanNumbers)
{
while (strRomanValue.IndexOf(pair.Key) == 0)
{
retVal += pair.Value;
strRomanValue = strRomanValue.Substring(pair.Key.Length);
}
}
return retVal;
}
public static void Main()
{
Console.WriteLine(ConvertRomanNumtoInt("I"));
Console.WriteLine(ConvertRomanNumtoInt("II"));
Console.WriteLine(ConvertRomanNumtoInt("III"));
Console.WriteLine(ConvertRomanNumtoInt("IV"));
Console.WriteLine(ConvertRomanNumtoInt("V"));
Console.WriteLine(ConvertRomanNumtoInt("VI"));
Console.WriteLine(ConvertRomanNumtoInt("VII"));
Console.WriteLine(ConvertRomanNumtoInt("VIII"));
Console.WriteLine(ConvertRomanNumtoInt("IX"));
Console.WriteLine(ConvertRomanNumtoInt("X"));
Console.WriteLine(ConvertRomanNumtoInt("XI"));
Console.WriteLine(ConvertRomanNumtoInt("XII"));
Console.WriteLine(ConvertRomanNumtoInt("XIII"));
Console.WriteLine(ConvertRomanNumtoInt("XIV"));
Console.WriteLine(ConvertRomanNumtoInt("XV"));
Console.WriteLine(ConvertRomanNumtoInt("XVI"));
Console.WriteLine(ConvertRomanNumtoInt("XVII"));
Console.WriteLine(ConvertRomanNumtoInt("XVIII"));
Console.WriteLine(ConvertRomanNumtoInt("XIX"));
Console.WriteLine(ConvertRomanNumtoInt("XX"));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHByaXZhdGUgc3RhdGljIERpY3Rpb25hcnk8c3RyaW5nLCBpbnQ+IFJvbWFuTnVtYmVycyA9IG5ldyBEaWN0aW9uYXJ5PHN0cmluZyxpbnQ+CiAgICB7CiAgICAgICAgeyJNIiwgMTAwMH0sCiAgICAgICAgeyJDTSIsIDkwMH0sCiAgICAgICAgeyJEIiwgNTAwfSwKICAgICAgICB7IkNEIiwgNDAwfSwKICAgICAgICB7IkMiLCAxMDB9LAogICAgICAgIHsiWEMiLCA5MH0sCiAgICAgICAgeyJMIiwgNTB9LAogICAgICAgIHsiWEwiLCA0MH0sCiAgICAgICAgeyJYIiwgMTB9LAogICAgICAgIHsiSVgiLCA5fSwKICAgICAgICB7IlYiLCA1fSwKICAgICAgICB7IklWIiwgNH0sCiAgICAgICAgeyJJIiwgMX0KICAgIH07CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgaW50IENvbnZlcnRSb21hbk51bXRvSW50KHN0cmluZyBzdHJSb21hblZhbHVlKQogICAgeyAgICAgICAgCiAgICAgICAgaW50IHJldFZhbCA9IDA7CiAgICAgICAgZm9yZWFjaCAoS2V5VmFsdWVQYWlyPHN0cmluZywgaW50PiBwYWlyIGluIFJvbWFuTnVtYmVycykKICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlIChzdHJSb21hblZhbHVlLkluZGV4T2YocGFpci5LZXkpID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldFZhbCArPSBwYWlyLlZhbHVlOwogICAgICAgICAgICAgICAgc3RyUm9tYW5WYWx1ZSA9IHN0clJvbWFuVmFsdWUuU3Vic3RyaW5nKHBhaXIuS2V5Lkxlbmd0aCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldFZhbDsKICAgIH0KICAgIAogICAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKENvbnZlcnRSb21hbk51bXRvSW50KCJJIikpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKENvbnZlcnRSb21hbk51bXRvSW50KCJJSSIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiSUlJIikpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKENvbnZlcnRSb21hbk51bXRvSW50KCJJViIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiViIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiVkkiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlZJSSIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiVklJSSIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiSVgiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlgiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlhJIikpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKENvbnZlcnRSb21hbk51bXRvSW50KCJYSUkiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlhJSUkiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlhJViIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiWFYiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlhWSSIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiWFZJSSIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiWFZJSUkiKSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoQ29udmVydFJvbWFuTnVtdG9JbnQoIlhJWCIpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShDb252ZXJ0Um9tYW5OdW10b0ludCgiWFgiKSk7CiAgICB9Cn0KCg==