Executando verificação de segurança...
2

Advent of Code 2023 - Dia 9: Manutenção do Oásis

Seguindo a sequência do AoC desse outro post: https://www.tabnews.com.br/DeividBraian/advent-of-code-2023-desafios-de-programacao


Dia 9: Manutenção do Oásis

https://adventofcode.com/2023/day/9

Descrição

Parte Um

Você cavalga o camelo através da tempestade de areia e para onde os mapas do fantasma disseram para parar. A tempestade de areia subsequentemente diminui, de alguma forma revelando você de pé em um oásis!

O camelo vai pegar água e você estica o pescoço. Enquanto olha para cima, você descobre o que deve ser mais uma ilha flutuante gigante, esta feita de metal! Deve ser de lá que vêm as peças para consertar as máquinas de areia.

Há até um asa-delta parcialmente enterrado na areia aqui; uma vez que o sol se levante e aqueça a areia, você pode ser capaz de usar a asa-delta e o ar quente para chegar até a ilha de metal!

Enquanto espera o sol nascer, você admira o oásis escondido aqui no meio da Ilha do Deserto. Deve ter um ecossistema delicado; você pode muito bem fazer algumas leituras ecológicas enquanto espera. Talvez você possa relatar quaisquer instabilidades ambientais que encontrar para que o oásis possa estar por aqui para o próximo viajante desgastado pela tempestade de areia.

Você pega o seu prático Sensor de Instabilidade do Oásis e da Areia e analisa seus arredores. O OASIS produz um relatório de muitos valores e como eles estão mudando ao longo do tempo (sua entrada de quebra-cabeça). Cada linha no relatório contém a história de um único valor. Por exemplo:

0 3 6 9 12 15
1 3 6 10 15 21
10 13 16 21 30 45

Para proteger melhor o oásis, seu relatório ambiental deve incluir uma previsão do próximo valor em cada história. Para fazer isso, comece fazendo uma nova sequência a partir da diferença em cada passo de sua história. Se essa sequência não for toda de zeros, repita este processo, usando a sequência que você acabou de gerar como a sequência de entrada. Uma vez que todos os valores em sua última sequência são zeros, você pode extrapolar qual deve ser o próximo valor da história original.

No conjunto de dados acima, a primeira história é 0 3 6 9 12 15. Como os valores aumentam 3 a cada passo, a primeira sequência de diferenças que você gera será 3 3 3 3 3. Observe que esta sequência tem um valor a menos do que a sequência de entrada porque em cada passo ela considera dois números da entrada. Como esses valores não são todos zero, repita o processo: os valores diferem 0 em cada passo, então a próxima sequência é 0 0 0 0. Isso significa que você tem informações suficientes para extrapolar a história! Visualmente, essas sequências podem ser organizadas assim:

0   3   6   9  12  15
  3   3   3   3   3
    0   0   0   0

Para extrapolar, comece adicionando um novo zero ao final da sua lista de zeros; como os zeros representam diferenças entre os dois valores acima deles, isso também significa que agora há um espaço reservado em cada sequência acima deles:

0   3   6   9  12  15   B
  3   3   3   3   3   A
    0   0   0   0   0

Você pode então começar a preencher os espaços reservados de baixo para cima. A precisa ser o resultado de aumentar 3 (o valor à sua esquerda) por 0 (o valor abaixo dela); isso significa que A deve ser 3:

0   3   6   9  12  15   B
  3   3   3   3   3   3
    0   0   0   0   0

Finalmente, você pode preencher B, que precisa ser o resultado de aumentar 15 (o valor à sua esquerda) por 3 (o valor abaixo dela), ou 18:

0   3   6   9  12  15  18
 

3 3 3 3 3 3
0 0 0 0 0

Portanto, o próximo valor da primeira história é 18.

Encontrar diferenças todos-zero para a segunda história requer uma sequência adicional:

1   3   6  10  15  21
  2   3   4   5   6
    1   1   1   1
      0   0   0

Então, seguindo o mesmo processo que antes, descubra o próximo valor em cada sequência de baixo para cima:

1   3   6  10  15  21  28
  2   3   4   5   6   7
    1   1   1   1   1
      0   0   0   0

Portanto, o próximo valor da segunda história é 28.

A terceira história requer ainda mais sequências, mas seu próximo valor pode ser encontrado da mesma forma:

10  13  16  21  30  45  68
   3   3   5   9  15  23
     0   2   4   6   8
       2   2   2   2
         0   0   0

Portanto, o próximo valor da terceira história é 68.

Se você encontrar o próximo valor para cada história neste exemplo e somá-los, obterá 114.

Analise seu relatório OASIS e extrapole o próximo valor para cada história. Qual é a soma desses valores extrapolados?

Parte 2

Ainda não desbloqueada

Comunidade

ompartilhe suas ideias e se junte ao nosso Private Leaderboard! Utilize o código 3564351-c120ec27

Carregando publicação patrocinada...