PROBLEMA
Dadas duas palavras, encontre o vencedor em uma batalha raiz digital .
Defina a raiz digital de uma palavra da seguinte maneira:
- A cada letra do alfabeto é atribuído um número: A = 1, B = 2, C = 3, ..., Z = 26
- Adicione os valores para cada letra para totalizar a palavra. Veja "CAT", por exemplo. C + A + T = 3 + 1 + 20 = 24
- Adicione todos os dígitos que compõem esse resultado: 24 => 2 + 4 = 6
- Repita a etapa 3 até atingir um único dígito. Esse dígito único é a raiz digital da palavra.
Regras:
- Um vencedor é declarado se sua raiz digital for maior que a outra.
- Se os valores da raiz digital forem iguais, reduza as palavras removendo todas as instâncias da letra de valor mais alto das palavras e recalculando.
- Repita as etapas 1 e 2 até que haja um vencedor ou uma das palavras tenha apenas uma única letra (ou nenhuma letra) restante.
- Se os valores da raiz digital forem iguais após o processo de redução, a palavra mais longa será declarada vencedora.
- Se as palavras tiverem o mesmo comprimento e nenhum vencedor for encontrado após o processo de redução, nenhum vencedor será declarado.
Regras especiais:
- Não é permitido o uso de módulo no cálculo da própria raiz digital . Pode ser usado em qualquer outro lugar.
- Suponha que as palavras consistam apenas em letras maiúsculas - sem pontuação, sem espaços, etc.
ENTRADA
Puxe as palavras por stdin (separadas por vírgula). parâmetros do método, ou como você desejar. Deixe claro em sua solução ou no código como as palavras são analisadas ou preparadas.
SAÍDA
Mostre a palavra vencedora. Se não houver vencedor, exiba "STALEMATE".
Exemplos:
intput: CAN, BAT
CAN = 18 = 9
BAT = 23 = 5
saída: CAN
intput: ZOO, NÃO
ZOO = 56 = 11 = 2
NO = 29 = 11 = 2
OO = 30 = 3
N = 14 = 5
saída: NÃO
UPDATE : A entrada deve ser lida usando stdin com as palavras como uma sequência separada por vírgula.
UPDATE : Adicionados alguns exemplos para testar.
ATUALIZAÇÃO : esclareceu a remoção da letra mais valorizada em caso de empate - isso também altera levemente a condição de parada - se uma palavra tiver uma letra ou zero letras, o processo de encurtamento será interrompido