Pense em uma estrada como uma linha numérica, começando 0
e continuando indefinidamente:
.................................................................
Existem dois carros na estrada: C
e R
. C
é o policial que está tentando pegar R
, o ladrão. C
começa às 0
e R
começa em algum lugar na estrada:
C.............................R..................................
O policial já está se movendo - ele está perseguindo o ladrão. Ele tem uma velocidade constante. O ladrão entrou no carro. Ele está acelerando. A cada tick, a velocidade do ladrão aumenta com a aceleração.
Digamos que a velocidade do policial seja 7
e a aceleração do assaltante 1
. Se o ladrão começar 30
, é assim que a estrada se pareceria com cada marca:
C.............................R..................................
.......C.......................R.................................
..............C..................R...............................
.....................C..............R............................
............................C...........R........................
...................................C.........R...................
..........................................C........R.............
.................................................C........R......
Após o último tique acima, a velocidade do ladrão é igual à do policial, e ele ainda está à frente. Como o policial está se movendo a uma velocidade constante e o ladrão ainda está acelerando, o ladrão escapa, então você gera um valor verdadeiro. No entanto, se a velocidade do policial tivesse sido 9
...
C.............................R..................................
.........C.....................R.................................
..................C..............R...............................
...........................C........R............................
....................................C...R........................
.............................................X...................
... então o policial alcança o ladrão antes que ele possa fugir (marcado pelo X
), para que você produza um valor de falsey.
Sua tarefa
Dadas três entradas - a velocidade do policial, a posição do ladrão e a aceleração do ladrão - determinam se o ladrão escapará ou não.
Regras
- O policial sempre começa às
0
. - Todas as entradas serão inteiros positivos.
- O policial pega o ladrão se, após qualquer marca, a posição do policial for maior ou igual à posição do ladrão.
- O ladrão foge quando ainda não foi pego e sua velocidade é maior que a da polícia.
- Seu programa deve terminar após a saída.
- O ladrão acelera antes de mover cada marca.
Casos de teste
Cop Speed, Robber Position, Robber Acceleration -> Output
7, 30, 1 -> truthy
9, 30, 1 -> falsey
2, 1, 3 -> truthy
100, 100, 50 -> truthy
60, 60, 20 -> falsey
10, 1, 1 -> falsey
10, 50, 2 -> truthy
11, 50, 2 -> truthy
12, 50, 2 -> truthy
13, 50, 2 -> truthy
14, 50, 2 -> truthy
15, 50, 2 -> truthy
16, 50, 2 -> falsey
17, 50, 2 -> falsey
18, 50, 2 -> falsey
100, 451, 10 -> truthy
Faça referência à implementação do Python 3 que cria um visual também: Experimente online!
Isso é código-golfe , então a resposta mais curta em bytes vence.
robber acceleration, cop speed, robber position
)?