#4564
Se dă o matrice de mărime N pe N care conține litere ale alfabetului englez. Definim un drum dreapta-jos ca fiind un șir de celule ale matricei care începe cu celula (1, 1), se termină cu celula (N, N), iar pentru fiecare celulă (x, y) din drum (exceptând ultima), succesoarea sa este fie (x+1, y), fie (x, y+1). Spunem că șirul de caractere generat de un drum în matrice este șirul obținut prin concatenarea valorilor celulelor drumului în ordine.
Să se găsească 2 drumuri dreapta-jos care nu se intersectează (decât în celulele (1, 1) și (N, N)) pentru care coeficientul de similaritate este maxim. Coeficientul de similaritate a 2 drumuri reprezintă numărul de poziții i pentru care a[i] = b[i], 0 ≤ i < lungime(a), lungime(b), unde a și b sunt șirurile generate de cele 2 drumuri.
Concursul Interjudețean de Matematică și Informatică Grigore Moisil, 2023
| Problema | DouaDrumuri | Operații I/O |
douadrumuri.in/douadrumuri.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 256 MB
/
Stivă 8 MB
|
| Id soluție | #47913136 | Utilizator | |
| Fișier | douadrumuri.cpp | Dimensiune | 7.89 KB |
| Data încărcării | 09 Ianuarie 2024, 21:12 | Scor/rezultat | 80 puncte |
douadrumuri.cpp: In function 'int main()': douadrumuri.cpp:93:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size() - 1; j1++) { ^ douadrumuri.cpp:94:61: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = j1 + 1; j2 < pos1.size(); j2++) { ^ douadrumuri.cpp:120:52: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size(); j1++) { ^ douadrumuri.cpp:121:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = 0; j2 < pos2.size(); j2++) { ^ douadrumuri.cpp:172:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size() - 1; j1++) { ^ douadrumuri.cpp:173:61: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = j1 + 1; j2 < pos1.size(); j2++) { ^ douadrumuri.cpp:202:52: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size(); j1++) { ^ douadrumuri.cpp:203:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = 0; j2 < pos2.size(); j2++) { ^ douadrumuri.cpp:26:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("douadrumuri.in", "r", stdin); ^ douadrumuri.cpp:27:44: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("douadrumuri.out", "w", stdout); ^ douadrumuri.cpp:29:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d\n", &n); ^ douadrumuri.cpp:33:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%c", &a[i][j]); ^ douadrumuri.cpp:35:20: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("\n"); ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0 secunde | OK. | 6 | 6 | ||
| 1 | 0 secunde | OK. | 6 | 6 | ||
| 2 | 0 secunde | OK. | 8 | 8 | ||
| 3 | 0.004 secunde | OK. | 5 | 5 | ||
| 4 | 0.024 secunde | OK. | 6 | 6 | ||
| 5 | 0.012 secunde | OK. | 6 | 6 | ||
| 6 | 0.012 secunde | OK. | 6 | 6 | ||
| 7 | 0.012 secunde | OK. | 7 | 7 | ||
| 8 | 0.264 secunde | OK. | 7 | 7 | ||
| 9 | 0.224 secunde | OK. | 7 | 7 | ||
| 10 | 0.224 secunde | OK. | 8 | 8 | ||
| 11 | 0.24 secunde | OK. | 8 | 8 | ||
| 12 | Depășit | Limita de timp depășită | 6 | 0 | ||
| 13 | Depășit | Limita de timp depășită | 7 | 0 | ||
| 14 | Depășit | Limita de timp depășită | 7 | 0 | ||
| Punctaj total | 80 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema DouaDrumuri 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ă.