Sms

Time limit: 0.07s Memory limit: 32MB Input: sms.in Output: sms.out

După ce a terminat de făcut curățenie prin casă, Harry și-a amintit că nu le-a mai da de mult timp un mesaj prietenilor lui, Henry și Hetty. Pentru că laptopul lui este la reparat, Harry a decis să le trimită un SMS. Mesajul pe care Harry vrea să îl trimită este compus din NN caractere, toate fiind cuprinse între primele KK litere mici ale alfabetului englez.

Telefonul lui Harry are tastatura QWERTY, însă are tastele foarte mici, astfel încât Harry nu poate fi niciodată sigur că va apăsa tasta dorită. Pentru fiecare caracter CC care are numărul de ordine ii in alfabetul englez (1iK)(1 ≤ i ≤ K), Harry a stabilit următoarele probabilități:

  • pCorectipCorect_i - probabilitatea ca Harry să tasteze caracterul CC;
  • pIncorectipIncorect_i - probabilitatea ca Harry să tasteze alt caracter decât CC;
  • pBackspaceipBackspace_i - probabilitatea ca Harry să tasteze backspace și astfel să șteargă ultimul caracter scris.

Este bine știut că Harry observă întotdeauna când tastează un caracter greșit, pe care îl șterge imediat apăsând tasta Backspace (pe care o va apăsa corect întotdeauna). Dacă se întamplă ca Harry să apese Backspace atunci când nu este niciun caracter scris din mesaj, nu se întâmplă nimic.

Cerință

Știind că orice apăsare de tastă durează exact o unitate de timp, calculați timpul mediu în care Harry va tasta mesajul. Timpul mediu pentru a scrie mesajul se definește ca fiind sumă din TPTT \cdot P_T, pentru TT de la 00 la infinit, unde PTP_T este probabilitatea de a scrie textul din exact TT apăsări de tastă.

Date de intrare

Pe prima linie a fișierului de intrare sms.in se vor afla două numere naturale NN și KK, cu semnificația din enunț. Pe următoarea linie se va alfa mesajul pe care Harry vrea sa îl trimită: un șir de NN caractere, compus doar din primele KK litere ale alfabetului englez. Pe următoarele KK linii, se vor afla probabilitățile determinate de Harry, astfel: pe linia 2+i, (1ik)2+i, \ (1 ≤ i ≤ k) se vor afla 33 numere reale, pCorecti, pIncorecti, pBackspaceipCorect_i, \ pIncorect_i, \ pBackspace_i, cu semnificația din enunț.

Date de ieșire

Pe prima linie a fisierului de iesire sms.out se va afișa un număr real - timpul mediu în care Harry va scrie mesajul.

Restricții și precizări

  • 1N1 000 0001 ≤ N ≤ 1 \ 000 \ 000
  • 1K261 ≤ K ≤ 26
  • Răspunsul se va verifica cu o precizie relativă de 0.00010.0001.
  • Pentru 40%40\% din teste, 1N5001 ≤ N ≤ 500.
  • Pentru orice i,1iKi, 1 ≤ i ≤ K, avem egalitatea pCorecti+pIncorecti+pBackspacei=1pCorect_i + pIncorect_i + pBackspace_i = 1.

Exemplul 1

sms.in

1 1
a
0.5 0.0 0.5

sms.out

2.0

Explicație

Harry are probabilitate de 12k\frac{1}{2^k} să apese corect tasta a după kk apăsări pentru prima oară. Timpul mediu de a o tasta este deci 112+214+318+4116+=21 \cdot \frac{1}{2} + 2 \cdot \frac{1}{4} + 3 \cdot \frac{1}{8} + 4 \cdot \frac{1}{16} + \dots = 2

Exemplul 2

sms.in

3 1
aaa
0.5 0.5 0.0

sms.out

9.0

Exemplul 3

sms.in

3 1
aaa
0.5 0.25 0.25

sms.out

10.625

Log in or sign up to be able to send submissions!