Siete y medio P97400


Statement
 

pdf   zip

html

ਐAtento, que este problema no es sencillo! ¿Sabes jugar al siete y medio? En este juego de azar tu objetivo es vencer a la banca. Primero tú juegas una mano de siete y medio, y luego le llega el turno a la banca: quien puntúe más sin pasarse gana la partida. ਐA lo largo de la historia, grandes fortunas han cambiado de manos por culpa de este juego! (Bueno, la frase anterior es seguramente falsa, pero cumple su función de ambientar el problema).

Jugaremos a la siguiente versión simplificada del siete y medio. Primero, es el turno del jugador: este irá pidiendo cartas hasta que decida plantarse. Las cartas en juego son los números del 1 al 7 (que valen tantos puntos como su número), y las 3 figuras (que valen medio punto). La puntuación del jugador es la suma de los puntos de las cartas en el momento de plantarse, con la única restricción de que no puede sobrepasar los 7.5 puntos; si así fuera, obtendría una puntuación de −1. A continuación juega la banca, con el objetivo de superar la puntuación obtenida por el jugador. La partida acaba cuando la banca se planta, se pasa, o se agotan las cartas. Gana el juego aquél (jugador o banca) que obtiene la máxima puntuación. En caso de empate, se considera que gana el jugador.

En este problema deberás ayudar a un jugador a vencer a la banca, calculando que probabilidad tiene de ganar si pide otra carta, y que probabilidad tiene de ganar si decide plantarse. Se asume que tanto el jugador como la banca siempre juegan perfectamente (el jugador toma siempre la decisión que tiene mayor probabilidad de éxito, y la banca deja de pedir cartas tan pronto supera la puntuación del jugador).

Entrada

Un número n<20 en una línea, que describe el número de casos. A continuación, n líneas, cada una de ellas describiendo un caso: un carácter c seguido de exactamente 8 números, separados por espacios. El carácter c describe la primera carta que ha recibido el jugador, y es o bien la letra ’F’ (para indicar que ha recibido una figura) o bien uno de los dígitos del ’1’ al ’7’, para indicar que ha recibido un número. Los 8 números restantes son el número de cartas de cada tipo que queda en la baraja después de haber repartido esta primera carta: el primero de los 8 números contiene el número de figuras, y los siete restantes el número de cartas de puntuación de 1 a 7.

Tu programa deberá resolver todos los casos en 1 segundo de tiempo.

Salida

Escribe, para cada caso, dos porcentajes en una línea, separados por espacios. El primer porcentaje es la probabilidad que, dada la baraja y la carta inicial, tiene el jugador de ganar si pidiera otra carta; el segundo porcentaje es la probabilidad que tendría de ganar si se plantara. Escribe los porcentajes sin decimales, redondeando al entero más próximo –las entradas serán tales que ninguna probabilidad tendrá la parte decimal entre 0.499999 y 0.500001, para evitar errores de redondeo.

Public test cases
  • Input

    8
    7 12 4 4 4 4 4 4 3
    6 12 4 4 4 4 4 3 4
    5 12 4 4 4 4 3 4 4
    4 12 4 4 4 3 4 4 4
    3 12 4 4 3 4 4 4 4
    2 12 4 3 4 4 4 4 4
    1 12 3 4 4 4 4 4 4
    F 11 4 4 4 4 4 4 4
    

    Output

    31% 83%
    28% 56%
    27% 36%
    28% 23%
    28% 12%
    34% 6%
    39% 2%
    47% 0%
    
  • Input

    7
    7 4 2 1 1 3 1 0 1
    4 4 2 1 1 3 1 0 1
    F 4 2 1 1 3 1 0 1
    7 6 0 0 0 0 0 0 1
    F 6 0 0 0 0 0 0 1
    1 6 0 0 0 0 0 0 1
    F 3 1 1 1 0 0 0 0
    

    Output

    31% 82%
    28% 20%
    46% 0%
    86% 71%
    43% 0%
    43% 14%
    100% 0%
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++