Dreamoon y Wi-Fi


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal

Dreamoon está parado en la posición 0 en una recta numérica. Drazil está enviando una lista de comandos a través de Wi-Fi al teléfono inteligente de Dreamoon y Dreamoon los sigue.

Cada comando es uno de los siguientes dos tipos:

• Vaya 1 unidad hacia la dirección positiva, indicada como '+'

• Vaya 1 unidad hacia la dirección negativa, denotada como '-'

Pero la conexión de Wi-Fi es tan mala que el teléfono inteligente de Dreamoon informa que algunos de los comandos no se pueden reconocer y Dreamoon sabe que algunos de ellos pueden incluso estar equivocados aunque se reconozcan con éxito. Dreamoon decide seguir todos los comandos reconocidos y lanzar una moneda justa para decidir los no reconocidos (es decir, se mueve 1 unidad en la dirección negativa o positiva con la misma probabilidad de 0,5).

Se le proporciona una lista original de comandos enviados por Drazil y una lista recibida por Dreamoon. ¿Cuál es la probabilidad de que Dreamoon termine en la posición que originalmente se suponía definitiva según las órdenes de Drazil?

Entrada

La primera línea contiene una cadena s_1: los comandos que Drazil envía a Dreamoon, esta cadena consta solo de los caracteres en el conjunto {'+', '-'}.

La segunda línea contiene una cadena s_2: los comandos que reconoce el teléfono inteligente de Dreamoon, esta cadena consta solo de los caracteres en el conjunto {'+', '-', '?'}. '?' denota un comando no reconocido.

Las longitudes de las dos cadenas son iguales y no exceden de 10.

Salida

Imprima un único número real correspondiente a la probabilidad pedida. Imprima dicho número real redondeado a nueve lugares decimales.

Ejemplo de Entrada 1

++-+-
+-+-+

Ejemplo de Salida 1

1.000000000

Ejemplo de Entrada 2

+-+-
+-??

Ejemplo de Salida 2

0.500000000

Ejemplo de Entrada 3

+++
??-

Ejemplo de Salida 3

0.000000000

Explicación

Para el primer ejemplo, tanto s_1 como s_2 harán que Dreamoon termine en la misma posición +1.

Para el segundo ejemplo, s_1 llevará a Dreamoon a terminar en la posición 0, mientras que hay cuatro posibilidades para s_2: {"+-++", "+-+-", "+--+", "+---"} con posición final {+2, 0, 0, -2} respectivamente. Entonces hay 2 casos correctos de 4, entonces la probabilidad de terminar en la posición correcta es 0.5.

Para el tercer ejemplo, s_2 solo podría llevarnos a terminar en las posiciones {+1, -1, -3}, por lo que la probabilidad de terminar en la posición correcta +3 es 0.


Comments


  • -6
    Pr0pHeT  commented on March 28, 2023, 12:39 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.