Fișierul intrare/ieșire | sms.in, sms.out | Sursă | Lot Vaslui 2014 |
---|---|---|---|
Autor | autor necunoscut | Adăugată de |
|
Timp de execuție pe test | 0.12 sec | Limită de memorie | 32768 KB |
Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
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 |
- |