A inspiração para este enigma de golfe código é o problema da ponte e da tocha , em que d pessoas no início de uma ponte todos devem atravessá-la no menor espaço de tempo.
O problema é que no máximo duas pessoas podem atravessar ao mesmo tempo, caso contrário, a ponte esmagará com o peso e o grupo só terá acesso a uma tocha, que deve ser carregada para atravessar a ponte.
Cada pessoa no quebra-cabeça inteiro tem um tempo especificado para atravessar a ponte. Se duas pessoas se cruzam, o par fica tão lento quanto a pessoa mais lenta.
Não há um número definido de pessoas que precisam atravessar a ponte; sua solução DEVE trabalhar com qualquer valor de d .
Você não precisa usar a entrada padrão para esse problema, mas, para explicar o problema, usarei o seguinte formato de entrada e saída para a explicação. O primeiro número, d , é o número de pessoas no início da ponte. Então, o código procurará por números d , cada um representando a velocidade de uma pessoa.
A saída do código será a ÚLTIMA quantidade de tempo necessária para atravessar todos, desde o início da ponte até o final da ponte, atendendo aos critérios explicados anteriormente.
Aqui estão alguns casos de entrada e de saída e a explicação para o primeiro caso de entrada. Cabe a você derivar um algoritmo dessas informações para resolver o problema no menor número possível de bytes de código possível.
entrada
4
1 2 5 8
resultado
15
Para alcançar esse resultado, as pessoas devem atravessar da seguinte maneira.
A and B cross forward (2 minutes)
A returns (1 minute)
C and D cross forward (8 minutes)
B returns (2 minutes)
A and B cross forward (2 minutes)
Aqui está outro caso de teste para guiá-lo ao longo do caminho.
entrada
5
3 1 6 8 12
resultado
29
Regras:
- Suponha que a entrada não será classificada e você deve fazê-lo por conta própria (se necessário)
- O número de pessoas no quebra-cabeça não é fixado em 4 (N> = 1)
- Todo grupo e travessia individual deve ter uma tocha. Existe apenas uma tocha.
- Cada grupo deve consistir em no máximo apenas 2 pessoas!
- Não, você não pode pular da ponte e nadar para o outro lado. Não há outros truques como este;).
1 4 5 6 7
tem um problema semelhante. 25 vs 26
N >= 2
pessoas (o que significa que, por incrível que pareça, é um trabalho extra lidar com o caso trivial de "uma pessoa precisa atravessar"), portanto, alguns esclarecimentos sobre esse ponto seriam ótimos. Desde já, obrigado.
1 3 4 5
, que deve retornar 14 não 15.