Experiment físic (2) P23914


Statement
 

pdf   zip

thehtml

Hi ha un objecte a la part superior esquerra d’un tauler n × m. Repetidament, l’objecte es mourà una casella a la dreta o una casella cap avall. Tanmateix, el tauler té obstacles que fan que l’objecte s’aturi. També, hi ha caselles on l’objecte es mourà sempre cap a la dreta, i caselles on l’objecte es mourà sempre cap avall. Finalment, a la resta de caselles, l’objecte es mourà amb probabilitat p una casella a la dreta, i amb probabilitat 1 − p una casella cap avall.

Podeu calcular la probabilitat que l’objecte surti del tauler?

Entrada

L’entrada consisteix en diversos casos. Cada cas comença amb p, n i m, seguides d’n files amb m ‍caràcters cadascuna. Els punts indiquen caselles buides, les ‘D’ caselles que fan anar cap a la dreta, les ‘A’ caselles que fan anar cap avall, i les ‘X’ obstacles. Suposeu 0 < p < 1, i ‍que n i m estan entre 1 i 1000.

Sortida

Per a cada cas, escriviu la probabilitat demanada amb quatre xifres decimals. Per fer-ho, poseu aquestes dues línies al principi del vostre main:

    cout.setf(ios::fixed);
    cout.precision(4);

Els jocs de proves no tenen problemes de precisió. El resultat no serà mai ni 0 ni 1.

Public test cases
  • Input

    0.7 3 4
    .X..
    .X..
    ....
    
    0.2 4 5
    ..A..
    X....
    .DX..
    .....
    
    0.5 2 3
    DAX
    X.X
    

    Output

    0.0900
    0.0144
    0.5000
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++