XXVI Olimpíada Brasileira de Informática
Submeta sua solução

Nome do arquivo: napolitano.x, onde x deve ser c, cpp, java, js ou py

Número Napolitano

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

Informações sobre a pontuação

  • Em um conjunto de casos de testes somando 40 pontos, comprimento(S) ≤ 103

Exemplos

Entrada
IVIXX
Saída
15
	
Entrada
XXXXXXL
Saída
-10
	
Entrada
IVXLCDM
Saída
556
	
Promoção:
sbc
Patrocínio
 
Apoio
 
Coordenação