Dada uma estrada artística e o tempo que levei para atravessá-la, diga-me se eu estava acelerando.
Unidades
A distância está na unidade arbitrária de d
. O tempo está na unidade arbitrária de t
.
A estrada
Aqui está um caminho simples:
10=====
As 10
médias 10 d
por t
. Esse é o limite de velocidade para a estrada. A estrada tem 5 =
s, então d
é 5. Portanto, se eu atravessar essa estrada em 0,5 t
, fui 10 d
port
, porque 5 / 0,5 = 10. O limite de velocidade dessa estrada é 10, então fiquei dentro do limite de velocidade.
Mas se eu atravessar essa estrada em 0,25 t
, fui 20 d
por t
, porque 5 / 0,25 = 20. O limite de velocidade dessa estrada é 10, então fui 10 acima do limite de velocidade.
Exemplos e cálculos
Observe que a entrada 1 é o tempo que levei para percorrer a estrada e a entrada 2 é a própria estrada.
Aqui está uma estrada complexa:
Input 1: 1.5
Input 2: 5=====10=====
O mais rápido que eu poderia ter (legalmente) percorrido a primeira estrada (os primeiros 5 =
s) é 5 d
por t
. Como 5 (distância) dividido por 5 (limite de velocidade) é 1, o mais rápido que eu poderia ter percorrido nessa estrada é 1t
.
Na próxima estrada, o limite de velocidade é 10 e a distância também é 5, o mais rápido que pude atravessar é 0,5 (5/10). Totalizar o tempo mínimo resulta em 1,5, o que significa que fui exatamente ao limite de velocidade.
Nota: Eu sei, eu poderia estar indo muito rápido em uma estrada e muito lento em outra e ainda atravessar em 1,5, mas assuma o melhor aqui.
Um exemplo final:
Input 1: 3.2
Input 2: 3.0==========20===
A primeira estrada tem 10 longos e um limite de velocidade de 3, portanto o tempo mínimo é 3,33333 ... (10 / 3.)
A segunda estrada é de 3 metros e tem um limite de velocidade de 20, portanto o tempo mínimo é de 0,15 (3 / 20.)
Totalizar os tempos resulta em 3,483333333 ... Eu o atravessei em 3,2, então eu precisava estar acelerando em algum lugar.
Notas:
- Você deve gerar um valor distinto, se eu estiver indubitavelmente acelerando, e outro valor diferente, se eu não estiver.
- Seu programa ou função pode exigir entrada ou saída para ter uma nova linha à direita, mas por favor diga isso no seu envio.
- Sua primeira entrada será a minha velocidade. Será um número positivo ou número inteiro ou sequência.
- Sua segunda entrada será a estrada. Sempre corresponderá ao regex
^(([1-9]+[0-9]*|[0-9]+\.[0-9]+)=+)+\n?$
. Você pode testar possíveis entradas aqui se estiver interessado. - Você pode inserir 2 parâmetros de uma função ou programa, em 2 arquivos separados, do STDIN duas vezes ou de uma sequência separada por espaço passada para o STDIN, uma função, um arquivo ou um parâmetro da linha de comando.
- Se desejar, você pode alterar a ordem das entradas.
- Alguma pergunta? Pergunte abaixo nos comentários e feliz código-golfe ing!
^(([1-9]+[0-9]*|(?!0\.0+\b)[0-9]+\.[0-9]+)=+)+\n?$
. (It would have been cleaner with a lookbehind, but then it would need .Net engine)