Walker da una oportunidad P49829


Statement
 

pdf   zip

html

Con frecuencia, el Ranger Walker se encuentra en la situación en la que acorrala a un delincuente y le apunta con la pistola, mientras el malechor alza las manos en señal de rendición. Walker sabe que a continuación lo detendrá, luego será juzgado, y quizás pasará un tiempo en la trena. Como consecuencia, el detenido no recibirá lo que realmente se merece: una buena paliza.

Sin embargo, Walker tiene un método para solucionar esta grave injusticia. Lo que suele hacer es acercar su mano con la pistola lo suficientemente al delincuente como para que éste vea la posibilidad de darle una patada en la mano, dejándole así desarmado. Una vez hecho esto, el malechor se lanza como un loco sobre Walker, creyendo que le ha pillado por sorpresa. Nada más lejos de la realidad, pues todo estaba planeado, y al pobre desgraciado le espera un menú de patadas y puñetazos. Walker no está dando una oportunidad a ese desdichado. Se está dando la oportunidad a sí mismo de impartir justicia.

Trivette está muy interesado en el método, aunque todavía no tiene muy controlado el tema de las distancias. Tu misión es escribir un programa que, dada la posición del delincuente, calcule la posición en que debe posicionarse Trivette para que su mano con la pistola pueda recibir una patada.

Tanto el delincuente como Trivette se encuentran en el plano (x,y), donde x se interpreta como horizontal, e y se interpreta como vertical. El delincuente está en la posición horizontal d, y Trivette se encuentra a su derecha, y le apunta con la pistola. La pierna del delincuente tiene longitud p, y rota desde la cintura. Más concretamente, el conjunto de puntos alcanzables por la pierna son aquellos que distan p de la coordenada (d,p) y cuya coordenada horizontal es mayor que d (ya que mira hacia la derecha). Por otro lado, el hombro de Trivette está a altura h, y coincide con la altura de la mano con la pistola. La longitud del brazo de Trivette es b. Por tanto, la pistola se encuentra a altura h, y a distancia horizontal b de la posición de Trivette. El objetivo es determinar la posición horizontal t de Trivette tal que el delincuente pueda darle una patada en la mano.

Entrada

La entrada consta de un entero en una línea con el número de casos (como mucho 100). Cada caso viene descrito en una línea, donde encontramos los enteros d, p, h y b, que són la descripción en centímetros de los datos del problema, y cumplen 0≤ d≤ 1000, 1≤ p≤ 150, 1≤ h≤ 2p−1, 0≤ b≤ 200.

Salida Para cada caso, escribe un número real t, la solución del problema en centímetros, con exactamente cuatro cifras decimales de precisión, redondeado al número más cercano.

Public test cases
  • Input

    8
    0 100 100 100
    10 100 100 100
    0 100 1 0
    0 100 199 0
    0 100 100 0
    0 100 150 0
    0 100 14 0
    0 100 13 0
    

    Output

    200.0000
    210.0000
    14.1067
    14.1067
    100.0000
    86.6025
    51.0294
    49.3052
    
  • Information
    Author
    Guillem Godoy
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++