Descrição
Números napolitanos, assim como números romanos, são escritos como uma sequência de letras, cada uma com um valor numérico, que são somados para compor o valor do número representado. As letras utilizadas, tanto por números romanos como por números napolitanos, e seus respectivos valores, são: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000. Dessa forma, MMXV representa 2015 tanto em números romanos como em números napolitanos. Também de maneira similar a números romanos, em números napolitanos é possivel colocar um símbolo p de valor menor antes de outro símbolo q de valor maior para diminuir a contribuição do símbolo q ao resultado final. Por exemplo, IX significa 10 − 1 = 9, tanto em números napolitanos como em números romanos. No entanto, no caso de números napolitanos os símbolos são processados da esquerda para a direita e cada símbolo diminui o valor do próximo símbolo maior do que ele, sucessivamente, até que não haja um símbolo maior do que último símbolo processado, e nesse caso o valor atual do último símbolo processado é somado ao resultado final. Por exemplo, considere IVIXX. O primeiro I muda o valor do V para quatro. O V , agora com valor 4, muda o valor do primeiro X para 6, e o segundo I muda o valor do primeiro X para 5. Então, o primeiro X soma 5 ao resultado final, já que não há símbolo de significado maior à sua direita (note que o que importa para a comparação é o valor padrão do símbolo, e não o seu valor depois de modificado por outros). Continuando, o segundo X soma 10 ao resultado final. Portanto, o número napolitano IVIXX representa o valor 15. Sua tarefa é, dada uma cadeia de caracteres, determinar o valor do número napolitano que ela representa.
Entrada
A entrada consiste de uma única linha, contendo uma cadeia de caracteres S.
Saída
Seu programa deve produzir uma única linha, contendo um único número inteiro, o valor do número napolitano que a sequência da entrada representa.
Restrições
• S contém apenas os caracteres I, V , X, L, C, D ou M
• 1 ≤ comprimento(S) ≤ 106
Exemplos de Entrada | Exemplos de Saída |
---|---|
IVXLCDM |
556 |
XXXXXXL |
-10 |
IVIXX |
15 |
Efetue Login ou Cadastre-se para submeter uma solução.
Adaptado por Erich Rodrigues | Competição: OBI 2015, Nível 2, Fase 2