Atenție! Aceasta este ultima versiune a paginii., scrisă la 2015-04-26 20:05:08.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire sms.in, sms.out Sursă Lot Vaslui 2014
Autor autor necunoscut Adăugată de avatar spatarel Spatarel Dan-Constantin spatarel
Timp de execuție pe test 0.12 sec Limită de memorie 32768 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip full
open book Poți vedea testele pentru această problemă accesând atașamentele .

Sms (lot seniori)

După ce a terminat de făcut curățenie prin casă, Harry și-a amintit că nu le-a mai dat 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 N caractere, toate fiind cuprinse între primele K 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 C care are numărul de ordine i în alfabetul englez (1 ≤ i ≤ K), Harry a stabilit următoarele probabilități:

  • pCorecti – probabilitatea ca Harry să tasteze caracterul C;
  • pIncorecti – probabilitatea ca Harry să tasteze alt caracter decât C;
  • pBackspacei – 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 T * PT, pentru T de la 0 la infinit, unde PT este probabilitatea de a scrie textul din exact T apăsări de tastă.

Date de intrare

Pe prima linie a fișierului de intrare sms.in se vor afla două numere naturale N și K, cu semnificația din enunț. Pe următoarea linie se va alfa mesajul pe care Harry vrea sa îl trimită: un șir de N caractere, compus doar din primele K litere ale alfabetului englez. Pe următoarele K linii, se vor afla probabilitățile determinate de Harry, astfel: pe linia 2 + i, (1 ≤ i ≤ k) se vor afla 3 numere reale, pCorecti, pIncorecti, pBackspacei, 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

  • 1 ≤ N ≤ 1 000 000
  • 1 ≤ K ≤ 26
  • Răspunsul se va verifica cu o precizie relativă de 0.000001.
  • Pentru 40% din teste, 1 ≤ N ≤ 500.
  • Pentru orice i, 1 ≤ i ≤ K, avem egalitatea pCorecti + pIncorecti + pBackspacei = 1.

Exemplu

sms.in sms.out Explicație
1 1
a
0.5 0.0 0.5
2.0
Harry are probabilitate de 1/2^k să apese
corect tasta “a” după k apăsări pentru prima
oară. Timpul mediu de a o tasta este deci
1*1/2 + 2*1/4 + 3*1/8 + 4*1/16 + ... = 2
3 1
aaa
0.5 0.5 0.0
9.0
-
3 1
aaa
0.5 0.25 0.25
10.625
-

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 1 categorii