#4564
DouaDrumuri
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 | #49455979 | Utilizator | |
Fișier | douadrumuri.cpp | Dimensiune | 1.44 KB |
Data încărcării | 02 Martie 2024, 16:42 | Scor / rezultat | 36 puncte |
douadrumuri.cpp: In function 'int main()': douadrumuri.cpp:21:19: warning: array subscript has type 'char' [-Wchar-subscripts] dp[ mat[1][1] ][2] = 1; ^ douadrumuri.cpp:27:31: warning: array subscript has type 'char' [-Wchar-subscripts] fr[ mat[i][j] ]++; ^ douadrumuri.cpp:35:56: warning: array subscript has type 'char' [-Wchar-subscripts] dp[ch][sum] = max( dp[ mat[i-1][j] ][sum-1], dp[ mat[i][j-1] ][sum-1] ); ^ douadrumuri.cpp:35:82: warning: array subscript has type 'char' [-Wchar-subscripts] dp[ch][sum] = max( dp[ mat[i-1][j] ][sum-1], dp[ mat[i][j-1] ][sum-1] ); ^ douadrumuri.cpp:38:55: warning: array subscript has type 'char' [-Wchar-subscripts] int maxnei = max( dp[ mat[i-1][j] ][sum-1], dp[ mat[i][j-1] ][sum-1] ); ^ douadrumuri.cpp:38:81: warning: array subscript has type 'char' [-Wchar-subscripts] int maxnei = max( dp[ mat[i-1][j] ][sum-1], dp[ mat[i][j-1] ][sum-1] ); ^ douadrumuri.cpp:44:53: warning: array subscript has type 'char' [-Wchar-subscripts] fprintf( fout, "%d\n", 1 + max( dp[ mat[n-1][n] ][2*n-1], dp[ mat[n][n-1] ][2*n-1] ) ); ^ douadrumuri.cpp:44:79: warning: array subscript has type 'char' [-Wchar-subscripts] fprintf( fout, "%d\n", 1 + max( dp[ mat[n-1][n] ][2*n-1], dp[ mat[n][n-1] ][2*n-1] ) ); ^ douadrumuri.cpp:15:29: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] fscanf( fin, "%d ", &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 | Raspuns gresit. | 8 | 0 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0 secunde | OK. | 6 | 6 | ||
5 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
6 | 0 secunde | Raspuns gresit. | 6 | 0 | ||
7 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
8 | 0 secunde | OK. | 7 | 7 | ||
9 | 0 secunde | Raspuns gresit. | 7 | 0 | ||
10 | 0 secunde | Raspuns gresit. | 8 | 0 | ||
11 | 0 secunde | Raspuns gresit. | 8 | 0 | ||
12 | 0.004 secunde | OK. | 6 | 6 | ||
13 | 0.004 secunde | Raspuns gresit. | 7 | 0 | ||
14 | 0.004 secunde | Raspuns gresit. | 7 | 0 | ||
Punctaj total | 36 |
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ă.