• Domingo 22 de Diciembre de 2024, 02:18

Autor Tema:  La Fuente de la vida (principiantes)  (Leído 2383 veces)

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
La Fuente de la vida (principiantes)
« en: Domingo 16 de Enero de 2011, 22:20 »
0
Enunciado del problema
    
Una Fuente de la vida es una fuente especial que produce el elixir de la vida a una velocidad constante de litros de elixir por segundo. Un mago oscuro logró echar una maldición de muerte en la Fuente de modo que además de el elixir que ahora produce un veneno mortal a una velocidad constante de litros de veneno por segundos. Tanto el veneno y el elixir son recolectados en una piscina infinitamente grande alrededor de la fuente y forman una mezcla. La mezcla será mortal una vez que el porcentaje de veneno en la mezcla es al menos el 50%. Tu tarea consiste en calcular el momento en que la mezcla será mortal. En la principio (0 segundos) la piscina contiene 100% elixir. Tu programa debe devolver un double, el tiempo en segundos en que la mezcla se convierte en mortal. Si la mezcla no se vuelve mortal. retornar -1,0.

    

Notas

El valor devuelto debe tener una precisión de un valor relativo o absoluto de 1E-9.

Restricciones

elixir estará entre 1 y 10000, ambos inclusive.

veneno estará entre 1 y 10000, ambos inclusive.

piscina estará entre 1 y 10000, ambos inclusive.

Ejemplos

  • 1
    2
    2

    Retorna: 2.0

    En t = 0s hay 2 litros de 100% elixir.
    En t = 1s hay 3 litros de elixir y 2 litros de veneno para un volumen total de 5 litros. 2 litros de veneno es de 40% de 5 litros de manera que la mezcla aún no es mortal.
    En t = 2s hay 4 litros de elixir y 4 litros de veneno para un volumen total de 8 litros. 4 litros de veneno es exactamente el 50% de la mezcla por lo que ahora es mortal.
     
  •    
    200
    100
    1

    Retorna: -1.0

    Con 200 litros de de elixir por segundos y sólo 100 litros de por segundo de veneno, la mezcla no se vuelve mortal nunca.
  •       
    9999
    10000
    10000

    Retorna: 10000.0

    Puede ser que tome mucho tiempo para que la mezcla se convierta en mortal.

  • 1
    10000
    1

    Retorna: 1.0001000100010001E-4

    Por otra parte, podría tomar muy poco tiempo para que la mezcla se convierta en mortal.

  • 40
    43
    41

    Retorna: 13.666666666666666


Muy fácil igual yo soy medio duro y tire una solución rebuscadísima la primera vez que lo resolví.

Acá dejo las 2 soluciones que yo hice :

Acá hice esto porque tenía el método a mano y fue todo muy sin pensarlo tratando de resolverlo más rápido posible.  

Después pensé y dije no la solución es aun mas fácil y bueno esto es lo que me quedó.

Traten Uds. a ver que les sale. :good: