Papai Noel precisa de ajuda para determinar quantos elfos ele precisará para ajudá-lo a entregar presentes para cada casa.
O carvão é consideravelmente mais pesado que os presentes, portanto, o Papai Noel precisará de três elfos para cada pessoa travessa da casa. Apenas dois elfos são necessários para ajudar o Papai Noel a levar presentes.
No mapa de santa, uma casa é representada por a *
, e cada casa é dividida por a +
.
Haverá um número em ambos os lados da casa - o da esquerda representando o número de pessoas malcriadas na casa e o da direita representando o número de pessoas legais na casa. Se não houver um número em um lado, ele será interpretado como um 0.
O Papai Noel não visita aqueles que não estão no espírito natalino (eles nem merecem carvão); portanto, às vezes, uma casa pode não ter um número em ambos os lados. Nesse caso, o Papai Noel não precisa da ajuda de nenhum elfo
Por exemplo, um dos mapas do Papai Noel pode ser assim
1*3+2*2+1*+*2
Na primeira casa há 1 safado e 3 agradáveis, o Papai Noel precisará de nove elfos. No segundo, existem 2 safados e 2 legais, o Papai Noel precisará de dez elfos. Na terceira casa tem 1 safada e 0 legal, o papai noel vai precisar três elfos, e na última casa há 0 impertinente e 2 legais, o Papai Noel precisará de quatro elfos.
Esta é uma versão simplificada de um dos mapas do Papai Noel. Normalmente, os mapas do Papai Noel têm várias linhas e têm uma forma quadrada para melhor se encaixar na lista dele. Um mapa normal pode se parecer com isso (a \n
no final de cada linha)
1*2+*+*4+1*
2*4+3*+1*6+*
*+*+4*2+1*1
*4+*3+1*+2*3
3*10+2*+*5+*
Neste mapa, o Papai Noel precisa ((1 + 0 + 0 + 1 + 2 + 3 + 1 + 0 + 0 + 0 + 4 + 1 + 0 + 0 + 1 + 2 + 3 + 2 + 0 + 0) * 3) + ((2 + 0 + 4 + 0 + 4 + 0 + 6 + 0 + 0 + 0 + 2 + 1 + 4 + 3 + 0 + 3 + 10 + 0 + 5 + 0) * 2)
= 151 elfos
Desafio
Ajude o Papai Noel a determinar quantos elfos ele precisa para entregar mercadorias em cada casa!
Moradias
- Uma casa é representada por um
*
- Casas são divididas por
+
- O número à esquerda da casa simboliza o número de pessoas malcriadas (nenhum número significa 0)
- O número à direita simboliza o número de pessoas legais (nenhum número significa 0)
- Pode haver novas linhas (
\n
) na entrada, que também devem ser tratadas como uma divisão
Elfos
- Papai Noel precisa de ajuda de três elfos para pessoas malcriadas (o carvão é muito mais pesado que os presentes)
- Papai Noel precisa da ajuda de dois elfos para pessoas legais
- Se não houver número de cada lado, o Papai Noel não visitará a casa e, portanto, não precisará de elfos.
O que fazer
Imprima o número de elfos que o Papai Noel precisa para ajudá-lo a entregar presentes às casas. Como tudo que o Papai Noel precisa saber é quantos elfos levar, você só precisa imprimir o número adicional de elfos que ele precisa para a lista de casas.
Casos de teste
1*1 => 5
1*2 => 7
2*1 => 8
1* => 3
*1 => 2
* => 0
1*1+1*1 => 10
1*2+2*1 => 15
1*+*1 => 5
1*1+*+1*1 => 10
*+*+*+* => 0
Regras
- A entrada pode ser tomada como argumento em uma função ou em STDIN ou equivalente
- A saída pode ser o valor de retorno de uma função ou impressa em STDOUT ou equivalente
- A entrada conterá apenas números,
+
,*
, e novas linhas\n
- A saída deve ser apenas o número total de elfos dos quais o Papai Noel precisa de ajuda para entregar no Natal
- Aplicam-se brechas padrão
Pontuação
O trenó do Papai Noel está cheio de presentes, dando-lhe menos espaço para executar o código, então ele precisa do código mais curto possível (não se preocupe se isso não fizer sentido. Se você questionar a lógica do Papai Noel, você terminará na lista impertinente ) Devido ao raciocínio CORRETO do Papai Noel , o menor envio em bytes vence!
Entre os melhores
Este é um snippet de pilha que gera um placar de líderes e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie sua resposta com um título, usando o seguinte modelo de remarcação
## Language Name, N bytes
Onde N é o tamanho, em bytes, do seu envio
Se você deseja incluir vários números no seu cabeçalho (por exemplo, localizar pontuações antigas ou incluir sinalizadores na contagem de bytes), verifique se a pontuação real é o último número no cabeçalho
## Language Name, <s>K</s> X + 2 = N bytes
hello-world.c
. Os elfos trabalhadores são alocados ansiosamente aos alvos, como Jojodmo disse (tenho certeza de que conheço Jojodmo, ele deve ser nosso administrador de sistemas) e, em seguida, usamos um retorno de chamada para notificar quando é hora de ser reinserido na piscina de trenós ou quando uma criança os viu.
max(naughty) + max(nice)
elfos para toda a rota? Eu pensei que ele tinha um monte de elfos voando com ele, mas talvez você tenha informações privilegiadas sobre isso e eu preciso olhar mais de perto este ano. :)