Em vez de ser um guerreiro habilidoso capaz de matar Hydras (veja aqui e aqui ), desta vez você é um guerreiro que não tem conhecimento prévio sobre como matar uma ou quais armas usar contra a criatura.
Nesse problema, sempre que você cortar uma única cabeça, duas crescerão no mesmo lugar. Como você não tem o mecanismo para cortar muitas cabeças simultaneamente, o número de cabeças só aumentará. Nesse caso, nossa Hydra pode começar com N(N ⩾ 1) cabeças. Vamos chamar o primeiro encontro de uma geração e representaremos as cabeças da primeira geração como 0 , as cabeças criadas após o primeiro golpe como 1 e assim por diante.
Entrada
Você receberá um número inteiro Nrepresentando quantas cabeças a Hydra possui inicialmente e uma lista de tamanhos Ncontendo em qual índice (nos exemplos eu usarei o formato indexado em 0) você cortará uma cabeça. Você sempre pode assumir que os índices fornecidos são válidos - lembre-se de que a lista (ou seja: as cabeças) crescerá à medida que você as cortar.
Exemplo
Entrada : N = 4e[0,4,2,5]
Geração 0 - Índice de ataque 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Geração 1 - Índice de ataque 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Geração 2 - Índice de ataque 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Geração 3 - Índice de ataque 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Última geração
1 1 3 3 0 4 4 2
Como você pode ver, os índices fornecidos estão relacionados à lista da geração anterior.
Resultado
Você é obrigado a produzir a última geração.
Casos de teste
N = 1 and [0] => [1,1]
N = 2 and [0,0] => [2,2,1,0]
N = 2 and [0,1] => [1,2,2,0]
N = 2 and [1,0] => [2,2,1,1]
N = 2 and [1,1] => [0,2,2,1]
N = 4 and [0,4,2,5] => [1,1,3,3,0,4,4,2]
N = 6 and [0,0,0,0,0,0] => [6, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0]
N = 6 and [5,6,7,8,9,10] => [0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6]
N = 10 and [1,7,3,12,9,0,15,2,2,10] => [6, 6, 9, 9, 8, 1, 3, 3, 0, 0, 10, 10, 2, 5, 5, 0, 0, 4, 7, 7]
Isso é código-golfe, então a resposta mais curta em bytes vence!
N(...) e uma lista de tamanhoN (mas eu também perdi essa parte quando li pela primeira vez o desafio.) Portanto, Né simplesmente inútil.
Nda entrada, uma vez que é "implicitamente" dado como o tamanho da matriz. No entanto, pensei que as soluções salvariam bytes, fornecendo, em Nvez deles, confiar em algo array.size()semelhante.