Skip to content

Instantly share code, notes, and snippets.

@rafaeltoledo
Last active December 6, 2023 17:24
Show Gist options
  • Save rafaeltoledo/ae2d8fb0f9481e569c9e1d06aaa73142 to your computer and use it in GitHub Desktop.
Save rafaeltoledo/ae2d8fb0f9481e569c9e1d06aaa73142 to your computer and use it in GitHub Desktop.
Advent of Code

Dia 1: Catapulta?!

Alguma coisa está errada com a produção global de neve e você foi a pessoa selecionada para dar uma olhada. Os Elfos até mesmo te deram um mapa. Nele, eles utilizaram estrelas para marcar as cinquenta localizações mais prováveis de estarem tendo problemas.

Você já tem experiência o suficiente pra saber que, para reestabelecer as operações de produção de neve, você precisa marcar todas as cinquenta estrelas até 25 de dezembro.

Recolha as estrelas através da resolução de desafios. Dois desafios serão disponibilizados em cada dia do calendário Adventista. O segundo desafio é liberado ao completar o primeiro. Cada desafio te concede uma estrela. Boa sorte!

Você pode estar se perguntando o motivo deles não utilizarem a máquina do tempo ("não é poderosa o suficiente"), e até pra onde eles estão te mandando ("o céu"), ou até o motivo do seu mapa estar praticamente em branco ("você é uma pessoa que pergunta muito"), ou ainda por que eles estão te mandando pro céu ("é óbvio, de onde você acha que a neve vem?"), quando você finalmente se dá conta de que os Elfos já estão te colocando em uma catapulta ("se segure aí enquanto colocamos o seu cinto de segurança").

Enquanto eles fazem os ajustes finais, percebem que o documento de calibração que eles possuem (a entrada do seu desafio) foi alterado por um Elfo bem jovem que aparentemente estava animado pra mostrar seus talentos artísticos. Consequentemente, os Elfos estão tendo dificuldades em ler os valores do documento.

O documento consiste em duas linhas de texto. Cada linha originalmente continha um valor de calibração específico que os Elfos agora precisam recuperar. Em cada linha, o valor de calibração pode ser encontrado combinando o primeiro dígito e o último dígito (nessa ordem) para formar um número de dois dígitos.

Por exemplo:

1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet

Neste exemplo, os valores de calibração para essas quatro linhas são 12, 38, 15 e 77. Adicionando esses valores juntos resulta em 142.

Considere seu documento de calibração completo. Qual é a soma de todos os valores de calibração?

Para começar, pegue aqui o seu documento.

Parte 2

O seu cálculo, na verdade, não está totalmente certo. Parece que alguns dos dígitos estão escritos por extenso: one, two, three, four, five, six, seven, eight e nine também contam como "dígitos" (o Elfo só fala inglês).

Levando em consideração essa nova informação, você agora precisa encontrar o primeiro e último dígito real de cada linha. Por exemplo:

two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen

Neste exemplo, a calibração dos valores é 29, 83, 13, 24, 42, 14 e 76. Adicionar esses números produz 281.

Qual é a soma de todos os números de calibração?

Apesar de não ter mudado, você ainda pode pegar a entrada do desafio aqui.

Dia 2: O Dilema do Cubo

Você está numa altura grande da atmosfera! O ápice da sua trajetória quase atinge a superfície de uma grande ilha flutuando no céu. Você, então, gentilmente pousa sobre um monte macio de folhas. Está bem frio, mas você não consegue ver muita neve. Um Elfo corre para te recepcionar.

Este Elfo explica que você acabou de chegar na Ilha das Neves e se desculpa pela falta de neve. Ele diz que vai lhe explicar a situação toda, mas está no meio de uma caminhada, então te convida para acompanhá-lo. Eles não recebem muitos visitantes lá em cima. Você gostaria de jogar um jogo nesse meio tempo?

Enquanto você caminha, o Elfo mostra a você uma pequena bolsa e alguns cubos que são vermelhos, verdes ou azuis. Cada vez que você joga esse jogo, ele vai esconder um número secreto de cubos de cada cor na bolsa. Seu objetivo é obter informações sobre o número de cubos.

Para obter informações, uma vez que a bolsa esteja cheia de cubos, o Elfo vai abri-la, encher a mão com um número aleatório de cubos, mostrar a você, e então devolver na bolsa. Ele vai fazer isso algumas vezes a cada jogo.

Você joga o jogo várias vezes e anota as informações de cada jogo (a entrada do seu desafio). Cada jogo é listado com o seu número identificador (por exemplo 11 no Game 11: ...) seguido por uma lista separada por ponto-e-vírgula dos subconjuntos de cubos que foram revelados da bolsa (por exemplo, 3 vermelhos, 5 verdes, 4 azuis).

Por exemplo, o registro de alguns jogos segue esse formato:

Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green

No jogo 1, três conjuntos de cubos são retirados da bolsa (e então colocados de volta). O primeiro conjunto consiste em 3 cubos azuis e 4 vermelhos. O segundo, 1 cubo vermelho, 2 cubos verdes e 6 cubos azuis. O terceiro conjunto possui apenas 2 cubos verdes.

O Elfo gostaria primeiramente de saber quais jogos seriam possíveis se a bolsa contivesse apenas 12 cubos vermelhos, 13 cubos verdes e 14 cubos verdes.

No exemplo acima, os jogos 1, 2 e 5 seriam possíveis se a bolsa estivesse preenchida com essa configuração. Porém, o jogo 3 seria impossível porque em certo ponto o Elfo te mostrou 20 cubos vermelhos de uma vez. De forma similar, o jogo 4 também seria impossível porque o Elfo te mostrou 15 cubos azuis de uma vez. Se você somar os identificadores dos jogos que seriam possível, você obtém 8.

Detemine quais jogos seriam possível se a bolsa contivesse apenas 12 cubos vermelhos, 13 cubos verdes e 14 cubos azuis. Qual seria a soma dos identificadores desses jogos?

Para iniciar, pegue a entrada do desafio aqui.

Parte 2

O Elfo então diz que eles pararam de produzir neve porque não estavam conseguindo água! Ele não tem certeza do motivo da água ter parado de chegar. Porém, ele pode te mostrar como chegar até a fonte de água para verificar por você mesmo. É só subir um pouquinho!

Durante a subida, o Elfo propõe uma segunda questão: em cada jogo que você jogou, qual é o menor número de cubos de cada cor que deve estar presente na bolsa para tornar o jogo possível?

Novamente, considere o exemplo dos jogos anteriormente visto:

Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green

No jogo 1, o jogo poderia ser jogado com apenas 4 cubos vermelhos, 2 verdes e 6 azuis. Se qualquer cor tivesse um cubo a menos, o jogo teria sido impossível. O jogo 2 poderia ter sido jogado com um mínimo de 1 cubo vermelho, 3 verdes e 4 azuis. O jogo 3 deveria ter sido com pelo menos 20 cubos vermelhos, 13 verdes e 6 azuis. O jogo 4 necessita pelo menos 14 cubos vermelhos, 3 verdes e 15 azuis. O jogo 5 precisaria de pelo menos 6 cubos vermelhos, 3 verdes e 2 azuis na bolsa.

O poder de um conjunto de cubos é igual ao número de cubos vermelhos, verdes e azuis multiplicados por si. O poder do junto mínimo de cubos no jogo 1 é 48. Nos jogos 2-5 foi 12, 1560, 630 e 36, respectivamente. Adicionando esses números, temos o resultado de 2286.

Para cada jogo, encontre o conjunto mínimo de cubos que devem estar presentes. Qual é a soma do poder destes conjuntos?

Apesar de não ter mudado, você ainda pode pegar a entrada do desafio aqui.

Dia 3: Proporções de Engrenagens

Você e o Elfo eventualmente chegam a um teleférico. Ele diz que o teleférico vai te levar até a fonte de água, mas este é o ponto mais longe no qual ele pode te acompanhar. Você então entra no elevador que leva até o teleférico.

Não demora muito para você encontras as gôndolas do teleférico, mas parece que há um problema: elas não estão se movendo.

"Aaah!"

Você se vira e vê uma Elfa levemente suja de graxa com uma chave de fenda e um olhar de surpresa. "Desculpe, eu não estava esperando ninguém! O teleférico não está funcionando agora. Ainda vai levar um tempo até que eu o conserte." Você, então, oferece ajuda.

A engenheira explica que uma parte do motor parece estar faltando, mas ninguém conseguiu descobrir qual é. Se você somar todos os números indicadores das partes no esquema do motor, deve ser fácil descobrir qual parte está faltando.

O esquema do motor (a entrada do seu desafio) consiste em uma representação visual do motor. Há vários números e símbolos que você não consegue entender direito, mas aparentemente qualquer número adjacente a um símbolo, mesmo na diagonal, é um "número identificador de uma parte" e deve ser incluído na sua soma. (Pontos finais (.) não contam como um símbolo.)

Aqui está um exemplo de um esquema de motor:

467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

Neste esquema, dois números não são parte dos números porque eles não estão adjacentes a um símbolo: 114 (superior direito) e 58 (centralizado à direita). Todos os outros números estão adjacentes a um símbolo e são um número indicador de uma parte. Suas somas resultam em 4361.

Obviamente, o esquema do motor é muito maior. Qual é a soma de todas os números de partes no esquema do motor?

Para começar, pegue aqui o seu documento.

Parte 2

A engenheira encontra as partes faltando e instala no motor! Assim que o motor retorna a vida, você embarca na gôndola mais próxima, finalmente subindo até a fonte de água.

Porém, você não parece estar indo muito rápido. Talvez alguma coisa ainda esteja errada? Felizmente, a gôndola tem um telefone com uma etiqueta "ajuda", então você liga e a engenheira responde.

Antes que você possa explicar a situação, ela sugere que você olhe através da janela. Você avista a engenheira segurando o telefone em uma mão e acenando com a outra. Você está subindo tão lentamente que nem mesmo saiu da estação. Você então sai da gôndola.

A parte que estava faltando não era o único problema - uma das engrenagens no motor está errada. Uma engrenagem é qualquer símbolo * que esteja adjacente a exatos dois números. A proporção da engrenagem é o resultado da multiplicação dos dois números juntos.

Dessa vez, você precisa encontrar a proporção de cada engrenagem e somá-las todas para que a engenheira entenda qual engrenagem precisa ser substituída.

Considere o mesmo esquema do motor novamente;

467..114..
...*......
..35..633.
......#...
617*......
.....+.58.
..592.....
......755.
...$.*....
.664.598..

Nesse esquema, há duas engrenagens. A primeira está na parte superior esquerda. Ela é composta dos números 467 e 35, então sua proporção é 16345. A segunda engreanagem está no canto inferior direito. Sua proporção é 451490 (O * adjacente a 617 não é uma engrenagem porque ele está adjacente apenas a um número.) A soma de todas as proporções resulta em 467835.

Qual é a soma de todas as proporções de engrenagens no esquema do motor?

Apesar de não ter mudado, você ainda pode pegar a entrada do desafio aqui.

Dia 4: Raspadinhas

A gôndola começa a te levar lá pra cima. Porém, estranhamente, o piso parece não estar subindo com você. Você não parece estar subindo a montanha. À media que a Ilha das Neves vai desparecendo embaixo de você, uma nova porção de terreno aparece acima de você! A gôndola te leva até a superfície dessa nova ilha que apareceu no céu e estaciona na entrada da estação.

Ao sair da gôndola, a primeira coisa que você percebe é que o ar é muito mais quente que na Ilha das Neves, além de ser bastante úmido. É aqui que a fonte de água está?

A próxima coisa que você percebe é um Elfo sentado no chão da estação em cima de algo que parece ser uma pilha de cartões quadrados coloridos.

"Oi! Tudo bem?!" O Elfo corre alegremente até você. "Como eu posso te ajudar?" Você então pergunta sobre as fontes de água.

"Eu não sei ao certo. Eu sou só o operador aqui do teleférico. Mas parece ser algo que devemos ter por aqui - essa é a Ilha da Ilha! Tenho certeza que o jardineiro deve saber. Mas ele está em uma ilha diferente - a ilha pequena cercada de água, não na ilha flutuante. Precisamos começar a pensar em um esquema de nomenclatura emlhor pras ilhas. Mas, enfim, vou te fazer uma proposta: se você puder me ajudar com uma coisinha, eu te empresto o meu barco e você pode visitar o jardineiro. Eu ganhei todas essas raspadinhas de presente, mas não consegui entender o que eu ganhei."

O Elfo te leva até uma pilha de cartões coloridos. Lá você encontra dezenas de raspadinhas, todas já raspadas. Ao pegar uma, você vê que cada cartão tem duas listas de números separadas por uma barra vertical (|): uma lista de números vencedores e então uma lista de números que você tem. Você olha todos os cartões e organiza as informações em uma tabela (a entrada do seu desafio).

Pelo que o Elfo conseguiu te explicar, você tem que descobrir quais números que você tem aparecem na lista de números vencedores. A primeira correspondência faz o cartão valer um ponto e cada correspondência após a primeira dobra o valor em pontos do cartão.

Por exemplo:

Card 1: 41 48 83 86 17 | 83 86  6 31 17  9 48 53
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
Card 3:  1 21 53 59 44 | 69 82 63 72 16 21 14  1
Card 4: 41 92 73 84 69 | 59 84 76 51 58  5 54 83
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11

No exemplo acima, o cartão 1 tem cinco números vencedores (41, 48, 83, 86 e 17) e oito números no seu cartão (83, 86, 6, 31, 17, 9, 48 e 53). Dos números que você tem, quatro deles (48, 83, 17 e 86) são números vencedores! Isso significa que o cartão 1 vale 8 pontos (1 para a primeira correspondência, e então a pontuação é dobrada três vezes para cada uma das correspondências após a primeira).

O cartão 2 tem dois números vencedores (32 e 61), então ele vale 2 pontos. O cartão 3 tem dois números vencedores (1 e 21), então ele vale 2 pontos. O cartão 4 tem um número vencedor (84), então ele vale 1 ponto. O cartão 5 não tem números vencedores, então ele não vale nenhum ponto. O cartão 6 não tem números vencedores, então ele não vale nenhum ponto.

Neste exemplo, então, a pilha de cartões de raspadinha do Elfo vale 13 pontos.

Você se senta ao lado da pilha de cartões coloridos e começa a calcular. Quantos pontos eles valem no total?

Para iniciar, pegue a entrada do desafio aqui.

Parte 2

Quando você está quase avisando o Elfo do resultado, um de vocês percebe que, na verdade, as regras estavam impressas no verso dos cartões.

Não existe o conceito de "pontos". Ao invés disso, as raspadinhas apenas fazem você ganhar outras raspadinhas iguais a quantidade de números vencedores que você tem.

Especificamente, você ganha cópias das raspadinhas abaixo do cartão vencedor, de acordo com número de correspondências. Então, se o cartão 10 tem 5 números correspondentes, você ganharia uma cópia de cada um dos cartões 11, 12, 13, 14 e 15.

As cópias das raspadinhas são pontuadas da mesma forma que raspadinhas normais te tem o mesmo número identificador que o cartão do qual ela é uma cópia. Por exemplo, se você ganha uma cópia do cartão 10 e ele tem 5 correspondências, você então ganharia uma cópia dos mesmos cartões que o cartão 10 original ganhou: ganharia uma cópia novamente dos cartões 11, 12, 13, 14 e 15. Esse processo se repete até que nenhuma das cópias faça você ganhar mais cartões. (Os cartões nunca fazem você ganhar uma cópia após o final do monte.)

Desta vez, o exemplo anterior é calculado de forma diferente:

Card 1: 41 48 83 86 17 | 83 86  6 31 17  9 48 53
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
Card 3:  1 21 53 59 44 | 69 82 63 72 16 21 14  1
Card 4: 41 92 73 84 69 | 59 84 76 51 58  5 54 83
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
  • O cartão 1 tem quatro números correspondentes, então você ganharia uma cópia de cada um dos quatro cartões seguintes: cartões 2, 3, 4 e 5.
  • O cartão original 2 tem dois números correspondentes, então você ganharia uma cópia do cartão 3 e uma do cartão 4.
  • Sua cópia do cartão 2 também ganharia uma cópia do cartão 3 e uma do cartão 4.
  • Suas quatro instâncias do cartão 3 (uma original e três cópias) tem dois números correspondentes, então você ganharia quatro cópias do cartão 4 e quatro cópias do cartão 5.
  • Suas oito instâncias do cartão 4 (uma original e sete cópias) tem um número correspondente, então você ganharia oito cópias do cartão 5.
  • Suas quatorze instâncias do cartão 5 (uma original e treze cópias) não tem números correspondentes, então você não ganha nenhum cartão.
  • Suas instância única do cartão 6 (a original) não tem números correspondentes, então você não ganha nenhum cartão.

Ao final, com todos os cartões originais e cópias processadas, você terminaria com 1 instância do cartão 1, 2 instâncias do cartão 2, 4 instâncias do cartão 3, 8 instâncias do cartão 4, 14 instâncias do cartão 5 e 1 instância do cartão 6. No total, este exemplo de uma pilha de raspadinhas resulta num total de 30 raspadinhas.

Processe todas as raspadinhas originais e suas cópias até que não haja mais raspadinhas vencedoras. Incluindo as originais e as cópias, qual o total de raspadinhas que você teria ao final?

Apesar de não ter mudado, você ainda pode pegar a entrada do desafio aqui.

Dia 5: Se Você Coloca Fertilizante em uma Semente

Você pega o barco e encontra o jardineiro exatamente onde te falaram que ele estaria: cuidando de um "jardim" gigante que se parece mais com uma fazenda.

"Uma fonte de água? A Ilha da Ilha é a fonte de água!" Você então comenta que a Ilha das Neves não está recebendo água nenhuma.

"Ah sim, nós precisamos parar o fluxo de água porque ficamos sem areia para filtrá-la! Não dá pra fazer neve com água suja. Mas não se preocupe, tenho certeza de que vamos conseguir mais areia em breve. Só precisamos desligar a água por alguns dias... talvez algumas semanas e... ah não." O rosto dele então se transformou num misto de preocupação e horror.

"Eu estava tão ocupado garantindo que todo mundo aqui teria comida que acabei me esquecendo de verificar o motivo de termos parado de conseguir areia! Há um trem saindo daqui a pouco indo naquela direção - é muito mais rápido que o seu barco. Você pode verificar pra mim?"

Você quase não tem tempo de concordar com o pedido quando ele surge com outro. "Enquanto você espera o trem, seria possível nos ajudar com um probleminha na produção de comida? A última edição do Almanaque da Ilha da Ilha acabou de chegar e estamos tendo dificuldade em entendê-lo."

O almanaque (a entrada do seu desafio) lista todas as sementes que precisam ser plantadas. Ele também lista o tipo de solo que deve ser usado para cada tipo de semente, qual fertilizante deve ser usado em cada tipo de solo, qual tipo de água deve ser usado para cada tipo de fertilizante, etc. Cada tipo de semente, solo, fertilizante e assim por diante, é identificado por um números, mas os números são reutilizados por cada categoria - dessa forma, solo 123 e fertilizante 123 não necessariamente estão relacionados um com o outro.

Por exemplo:

seeds: 79 14 55 13

seed-to-soil map:
50 98 2
52 50 48

soil-to-fertilizer map:
0 15 37
37 52 2
39 0 15

fertilizer-to-water map:
49 53 8
0 11 42
42 0 7
57 7 4

water-to-light map:
88 18 7
18 25 70

light-to-temperature map:
45 77 23
81 45 19
68 64 13

temperature-to-humidity map:
0 69 1
1 0 69

humidity-to-location map:
60 56 37
56 93 4

O almanaque começa listando quais sementes precisam ser plantadas: sementes 79, 14, 55 e 13.

O restante do almanaque contém uma lista de mapas que descrevem como converter números de uma categoria de origem em números de uma categoria de destino. Dessa forma, a seção que começa com seed-to-soil map: descreve como converter um número de semente (a origem) até um número de solo (o destino). Isso faz com que o jardineiro e sua equipe saibam qual solo usar com cada semente, qual água usar com qual fertilizante e assim por diante.

Em vez de listar cada número de origem e seu destino correspondente um a um, os mapas descevem faixas completas de números que podem ser convertidos. Cada linha com um mapa contém três números: o início da faixa de destino, o início da faixa de destino e o tamanho da faixa.

Considere novamente o exemplo do seed-to-soil map:

50 98 2
52 50 48

A primeira linha tem um início de uma faixa de destino de 50, um início de uma faixa de origem de 98 e um tamanho de faixa de 2. Essa linha significa que a faixa de origem começa em 98 e contém dois valores: 98 e 99. A faixa de destino possui o mesmo tamanho, mas começa em 50, então seus dois valores são 50 e 51. Com essa informação, você sabe que a semente número 98 corresponde ao solo número 50 e a semente número 99 corresponde ao solo número 51.

A segunda linha significa que a faixa de origem começa em 50 e contém 48 valores: 50, 51, ..., 96, 97. Isso corresponde a faixa de destino começando em 52 e também contendo 48 valores: 52, 53, ..., 98, 99. Então, a semente 53 corresponde ao solo número 55.

Quaisquer números de origem que não estão mapeados correspondem ao mesmo número de destino. Assim, a semente número 10 corresponde ao solo número 10.

Dessa forma, a lista inteira de números e seus números de solo correspondentes fica assim:

seed  soil
0     0
1     1
...   ...
48    48
49    49
50    52
51    53
...   ...
96    98
97    99
98    50
99    51

Com este mapa, você pode verificar o número de solo necessário para cada número de semente fornecido inicialmente:

  • A semente número 79 corresponde ao solo número 81.
  • A semente número 14 corresponde ao solo número 14.
  • A semente número 55 corresponde ao solo número 57.
  • A semente número 13 corresponde ao solo número 13.

O jardineiro e sua equipe querem começar o quanto antes, então eles gostariam de saber a localização mais próxima que precisa de uma semente. Usando esses mapas, encontre o menor número de local que corresponde a qualquer uma das sementes iniciais. Para fazer isso, você vai precisar converter cada número de semente através as outras categorias até que você encontre seu número de local correspondente. Neste exemplo, os tipos correspondentes são:

  • Semente 79, solo 81, fertilizante 81, água 81, luz 74, temperatura 78, umidade 78, local 82.
  • Semente 14, solo 14, fertilizante 53, água 49, luz 42, temperatura 42, umidade 43, local 43.
  • Semente 55, solo 57, fertilizante 57, água 53, luz 46, temperatura 82, umidade 82, local 86.
  • Semente 13, solo 13, fertilizante 52, água 41, luz 34, temperatura 34, umidade 35, local 35.

Assim, o menor número de local nesse exemplo é 35.

Qual é o menor número de local que corresponde a qualquer um dos números de semente iniciais?

Para iniciar, pegue a entrada do desafio aqui.

Parte 2

Todos vão passar fome se você plantar somente um número pequeno de sementes. Relendo o almanaque, ele se assemelha as sementes: uma linha na verdade descreve uma faixa de números de sementes.

Os valores nas sementes iniciais: linhas vem em pares. Em cada par, o primeiro valor é o início de uma faixa e o segundo valor é o tamanho da faixa. Então, na primeira linha do exemplo acima:

seeds: 79 14 55 13

Esta linha descreve duas faixas de números de sementes a serem plantadas no jardim. A primeira faixa começa com a semente número 79 e contém 14 valores: 79, 80, ..., 91, 92. A segunda faixa começa com a semente número 55 e contém 13 valores: 55, 56, ..., 66, 67.

Agora, ao invés de considerar quatro números de sementes, você precisa considerar um total de 27 números de sementes.

No exemplo acima, o menor número de local que pode ser obtido da semente número 82, corresponde ao solo 84, fertilizante 84, água 84, luz 77, temperatura 45, umidade 46 e local 46. Então o menor número de local é 46.

Considere então os números de sementes iniciais listados como faixas na primeira linha do almanaque. Qual é o menor número de local que corresponde a qualquer uma dos números de sementes iniciais?

Apesar de não ter mudado, você ainda pode pegar a entrada do desafio aqui.

Dia 6: No Aguardo

O trem rapidamente te leva através da Ilha da Ilha. Após perguntar a alguns transeuntes, você descobre que normalmente haveria uma grande pilha de areia nas redondezas, mas você não vê nada além de bastante água e a pequena ilha onde o trem estacionou.

Enquanto você tenta pensar sobre o que fazer, você percebe que há um panfleto colado na parede próximo a plataforma de embarque. "Corrida de barcos! Aberta ao público! O prêmio será uma viagem totalmente paga para a Ilha do Deserto!" Deve ser de lá que vem a areia! O melhor de tudo é que a corrida vai começar em alguns minutos.

Você corre e consegue se inscrever a tempo para competir. O organizador explica que não é uma corrida tradicional - você vai receber uma janela de tempo fixa na qual o seu barco deve percorrer a maior distância que você conseguir, e o vencedor é aquele que chegar mais longe.

Como parte da inscrição você obtém um bloco de papel (a entrada do desafio) que lista o tempo permitido para cada corrida e também a melhor distância já atingida naquela corrida. Para garantir a sua vitória (e o prêmio) você precisa ter certeza de que vá mais longe que o detentor atual do recorde em cada corrida.

O organizador te leva até a área onde os barcos de corrida estão atracados. Eles são muito menores do que você tinha imaginado - na verdade, eles são de brinquedo e possuem um grande botão na parte de cima. Ao segurar o botão o barco é carregado, e quando o botão é liberado ele se move. Os barcos vão mais longe se você segurar o botão por mais tempo, porém o tempo gasto segurando o botão conta no tempo total da corrida. Você só pode segurar o botão no início da corrida e os barcos não se movem até que o botão seja liberado.

Por exemplo:

Time:      7  15   30
Distance:  9  40  200

Este documento descreve três corridas:

  • A primeira corrida dura 7 milissegundos. O recorde de distância nesta corrida é 9 milímetros.
  • A segunda corrida dura 15 milissegundos. O recorde de distância nesta corrida é 40 milímetros.
  • A terceira corrida dura 30 milissegundos. O recorde de distância nesta corrida é 200 milímetros.

O seu barco de brinquedo tem uma velocidade inicial de zero milímetros por segundo. Para cada milissegundo que você gasta no começo da corrida segurando o botão, a velocidade do barco aumenta em um milímetro por milissegundo.

Então, como a primeira corrida dura 7 milissegundos, você possui apenas algumas opcões:

  • Não apertar o botão (ou seja, segurá-lo por 0 milissegundos) no início da corrida. O barco não vai se mover e terá viajado 0 milímetros no final da corrida.
  • Segurar o botão por 1 milissegundo no início da corrida. Assim, o barco irá se mover a uma velocidade de 1 milímetro por segundo por 6 milissegundos, atingindo uma distância total de 6 milímetros.
  • Segurar o botão por 2 milissegundos, fornecendo ao barco uma velocidade de 2 milímetros por segundo. Ele terá 5 milissegundos para se mover, atingindo uma distância de 10 milímetros.
  • Segurar o botão por 3 milissegundos. Após os 4 milissegundos restantes de movimento, o barco terá andado 12 milímetros.
  • Segurar o botão por 4 milissegundos. Após os 3 milissegundos restantes de movimento, o barco terá andado 12 milímetros.
  • Segurar o botão por 5 milissegundos, fazendo o barco andar uma distância total de 10 milímetros.
  • Segurar o botão por 6 milissegundos, fazendo o barco andar uma distância total de 6 milímetros.
  • Segurar o botão por 7 milissegundos. Essa é a duração total da prova. O barco não se move enquanto você estiver segurando o botão. Certifique-se de soltar o botão para o barco se mover. 0 milímetros.

Como o recorde atual para esta corrida é de 9 milímetros, há 4 diferentes formas de vencer: você poderia segurar o botão por 2, 3, 4 ou 5 milissegundos no início da prova.

Na segunda corrida, você poderia segurar o botão por pelo menos 4 milissegundos e no máximo por 11 milissegundos para bater o recorde, um total de 8 formas diferentes de vencer.

Na terceira corrida, você poderia segurar o botão por no mínimo 11 milissegundos e não mais que 19 milissegundos, e ainda assim poderia quebrar o recorde de 9 formas diferentes.

Para checar o quanto vocÊ tem de margem de erro, determine o número de formas de quebrar o recorde em cada corrida. Neste exemplo, se você multiplicar esses valores, você terá 288 (4 * 8 * 9).

Determine o número de formas de que você pode bater o recorde em cada corrida. Qual o resultado da multiplicação desses números entre si?

Para iniciar, pegue a entrada do desafio aqui.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment