#3719
Se dă un șir de caractere s, care poate conține doar litere mici și mari ale alfabetului englez (de la a la z și de la A la Z). Pentru toate perechile neordonate de subsecvențe distincte ale șirului s care au lungimi egale, vrem să calculăm distanța dintre ele și să afișăm suma acestora modulo 1.000.000.007. Formal, se cere suma valorilor dist(s(a, b), s(c, d)), pentru toți indicii a, b, c, d cu 0 ≤ a, b, c, d < |s|, a < c, a ≤ b, c ≤ d, b - a = d - c, modulo 1.000.000.007. |s| reprezintă lungimea șirului s, care este indexat de la 0.
OJI 2021, clasa a X-a
| Problema | SDistante | Operații I/O |
sdistante.in/sdistante.out
|
|---|---|---|---|
| Limita timp | 0.3 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #49514625 | Utilizator | |
| Fișier | sdistante.cpp | Dimensiune | 723 B |
| Data încărcării | 05 Martie 2024, 13:51 | Scor/rezultat | 100 puncte |
sdistante.cpp: In function 'int32_t main()': sdistante.cpp:28:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<s.size();i++) ^ sdistante.cpp:30:35: warning: array subscript has type 'char' [-Wchar-subscripts] sum = (sum + (cnt - v[s[i]]) * (s.size() - i)) % MOD; ^ sdistante.cpp:32:15: warning: array subscript has type 'char' [-Wchar-subscripts] v[s[i]] += i + 1; ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | OK. | 5 | 5 | ||
| 2 | 0 secunde | OK. | 6 | 6 | ||
| 3 | 0 secunde | OK. | 2 | 2 | ||
| 4 | 0 secunde | OK. | 3 | 3 | ||
| 5 | 0 secunde | OK. | 5 | 5 | ||
| 6 | 0 secunde | OK. | 5 | 5 | ||
| 7 | 0 secunde | OK. | 5 | 5 | ||
| 8 | 0 secunde | OK. | 3 | 3 | ||
| 9 | 0 secunde | OK. | 3 | 3 | ||
| 10 | 0 secunde | OK. | 6 | 6 | ||
| 11 | 0 secunde | OK. | 6 | 6 | ||
| 12 | 0 secunde | OK. | 6 | 6 | ||
| 13 | 0 secunde | OK. | 6 | 6 | ||
| 14 | 0 secunde | OK. | 6 | 6 | ||
| 15 | 0 secunde | OK. | 2 | 2 | ||
| 16 | 0 secunde | OK. | 3 | 3 | ||
| 17 | 0 secunde | OK. | 2 | 2 | ||
| 18 | 0 secunde | OK. | 2 | 2 | ||
| 19 | 0.016 secunde | OK. | 3 | 3 | ||
| 20 | 0.016 secunde | OK. | 3 | 3 | ||
| 21 | 0.064 secunde | OK. | 6 | 6 | ||
| 22 | 0.068 secunde | OK. | 6 | 6 | ||
| 23 | 0.064 secunde | OK. | 6 | 6 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema SDistante face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.