#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 | #47913160 | Utilizator | |
Fișier | douadrumuri.cpp | Dimensiune | 7.42 KB |
Data încărcării | 09 Ianuarie 2024, 21:13 | Scor / rezultat | 80 puncte |
douadrumuri.cpp: In function 'int main()': douadrumuri.cpp:79:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size() - 1; j1++) { ^ douadrumuri.cpp:80:61: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = j1 + 1; j2 < pos1.size(); j2++) { ^ douadrumuri.cpp:106:52: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size(); j1++) { ^ douadrumuri.cpp:107:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = 0; j2 < pos2.size(); j2++) { ^ douadrumuri.cpp:158:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size() - 1; j1++) { ^ douadrumuri.cpp:159:61: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = j1 + 1; j2 < pos1.size(); j2++) { ^ douadrumuri.cpp:188:52: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j1 = 0; j1 < pos1.size(); j1++) { ^ douadrumuri.cpp:189:56: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int j2 = 0; j2 < pos2.size(); j2++) { ^ douadrumuri.cpp:12: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:13: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:15:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d\n", &n); ^ douadrumuri.cpp:19: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:21: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.016 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.284 secunde | OK. | 7 | 7 | ||
9 | 0.224 secunde | OK. | 7 | 7 | ||
10 | 0.228 secunde | OK. | 8 | 8 | ||
11 | 0.224 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ă.