Battle for Walketh P57317


Statement
 

pdf   zip

html

Cuando

Walker, 48 HP, 10-5 (2) 70%

se enfrenta a

Malote, 42 HP, 6-4 (1) 40%

se sigue el siguiente proceso. Walker intenta 5 ataques, cada uno de los cuales tiene un 70% de probabilidades de acertar, y que restan 10 puntos de vida (HP) a Malote. Cada ataque fallido cuesta a Walker 2 puntos de vida. A continuación, llega el turno de Malote, que intentará 4 ataques que causan 6 puntos de vida a Walker en caso de acierto y 1 punto de vida a Malote en caso de fallo, y donde la posibilidad de acierto es el 40%. A continuación vuelve a atacar Walker, y el proceso continúa indefinidamente hasta que uno de los luchadores tiene 0 o menos puntos de vida.

Se te pide que, dadas las puntuaciones de dos luchadores (puntos de vida iniciales, daño y número de ataques, daño autoinfligido en caso de fallar el ataque, y probabilidad de éxito del ataque) digas qué probabilidad tiene el primer luchador de ganar el combate.

Entrada

Cada entrada contiene no más de 100 casos, separados entre sí por líneas en blanco. Cada caso contiene dos líneas con los datos de los luchadores, exactamente igual que en el ejemplo. El nombre del luchador es una cadena sin espacios, los puntos de vida iniciales siempre están entre 1 y 100, los daños de los ataques entre 1 y 30, el número de ataques entre 1 y 5, el daño auto-infligido por ataque fallido entre 0 y 5, y las probabilidades de acierto (en tantos por ciento) son naturales entre 1 y 99.

Salida

Para cada caso escribe una línea con la probababilidad de que gane el primer luchador. Redondea los números al entero más cercano. (Por ejemplo, en el primer ejemplo, la probabilidad de que gane Walker es aproximadamente 99.8515%, que se redondea a 100%). Se te garantiza que puedes usar el tipo double sin tener problemas de precisión (en particular, ninguna respuesta será de la forma (n + 0.50)% para n natural).

Puntuación

  • TestA:  60 Puntos 

    Entradas donde el daño auto-infligido por ataque fallido siempre será 1 o superior.

  • TestB:   Entradas de todo tipo.  40 Puntos 
Public test cases
  • Input

    Walker, 48 HP, 10-5 (2) 70%
    Malote, 42 HP, 6-4 (1) 40%
    
    Luchador1, 1 HP, 5-2 (1) 50%
    Luchador2, 5 HP, 1-1 (1) 50%  
    
    Luchador1, 30 HP, 8-3 (2) 50%
    Luchador2, 30 HP, 7-5 (1) 60%  
    
    A, 7 HP, 1-1 (1) 59%
    B, 23 HP, 8-3 (3) 42%
    
    Johnny, 35 HP, 8-2 (3) 69%
    Mahonny, 26 HP, 7-3 (2) 60%
    
    Jack, 28 HP, 1-3 (3) 60%
    Gil, 38 HP, 2-2 (3) 30%
    

    Output

    100
    50
    28
    2
    80
    38
    
  • Input

    Walker, 48 HP, 10-5 (0) 60%
    Rocky, 100 HP, 8-3 (0) 30%
    
    Walker, 48 HP, 10-5 (0) 60%
    Johnny, 60 HP, 12-3 (1) 40%
    
    A, 33 HP, 17-4 (4) 96%
    B, 74 HP, 15-3 (3) 21%
    
    A, 31 HP, 1-3 (2) 52%
    B, 85 HP, 20-1 (0) 60%
    
    A, 66 HP, 21-3 (0) 71%
    B, 82 HP, 19-1 (2) 2%
    
    A, 4 HP, 26-5 (0) 52%
    B, 4 HP, 2-4 (0) 32%
    

    Output

    97
    92
    97
    0
    100
    99
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++