Usando qualquer linguagem de programação que suporte funções, tenha a função
is_enough(strArr)
aquela tomada strArrque será uma matriz composta pelos seguintes elementos:
Nqual será o número de postos de gasolina em uma rota circular- e cada elemento subsequente será a string
g:cem quegé a quantidade de gás em galões naquele posto de gasolina ecserá a quantidade de galões de gás necessária para chegar ao seguinte posto de gasolina.
Por exemplo, strArrpode ser:
["4","3:1","2:2","1:2","0:1"].
Seu objetivo é retornar o índice do posto de gasolina inicial que permitirá que você viaje ao longo de todo o percurso uma vez; caso contrário, retorne a string "impossível" .
Para o exemplo acima, existem 4 postos de gasolina e seu programa deve retornar a string "1" porque:
Começando na estação 1, você recebe 3 galões de gasolina e gasta 1 na próxima estação.
Então você tem 2 galões + mais 2 na próxima estação e você gasta 2 para ter 2 galões quando chegar à 3ª estação.
Você tem 3, mas gasta 2 chegando à estação final,
Na estação final, você recebe 0 galões e gasta seu galão final chegando ao ponto de partida.
Começar em qualquer outro posto de gasolina tornaria impossível a locomoção da rota, então a resposta é "1" .
Se houver vários postos de gasolina em que é possível iniciar, retorne o menor índice (do posto de gasolina). Nserá >= 2.
Resultados corretos da amostra:
Input: ["4","1:1","2:2","1:2","0:1"]
Output: "impossible"
Input: ["4","0:1","2:2","1:2","3:1"]
Output: "4"
O vencedor será aquele que usar o código mais curto, embora seja longo.
N+1elementos precisos strArr? Isso seria Nredundante caso a linguagem já forneça uma maneira de obter o comprimento da matriz, certo? (ainda seria útil para, por exemplo, C).
is_enough(9 caracteres); três estão usando um nome de caractere único e um não nomeia a função. Você poderia esclarecer o que é permitido?