#3376
Se dă un şir de caractere S format din litere mari şi mici ale alfabetului englez, spaţii şi caracterul ⌂ ce are codul ASCII 127. Fiecare caracter al lui S se codifică printr-o succesiune de 1 şi 0 ce reprezintă codul ASCII al caracterului în baza 2. Codul începe cu cifra 1, astfel pentru caracterul A codificarea este 1000001. Un cuvânt poate fi format din litere şi caracterul ⌂. Se consideră matricea M formată din cuvintele șirului S codificate şi memorate pe câte o linie în ordinea în care se găsesc acestea în propoziție. Scrieţi un program care, cunoscând S şi K, rezolvă următoarele două cerinţe:
1. determină L, latura celui mai mare pătrat din matricea M ce conține doar valori de 1;
2. determină NR, câte pătrate de latura K cu toate elementele egale cu 1 există în matricea M.
Olimpiada Municipala de Informatica, Iasi, 2020
| Problema | asciimat | Operații I/O |
asciimat.in/asciimat.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
| Id soluție | #41332940 | Utilizator | |
| Fișier | asciimat.cpp | Dimensiune | 4.23 KB |
| Data încărcării | 19 Ianuarie 2023, 15:09 | Scor/rezultat | 100 puncte |
asciimat.cpp: In function 'void task1()': asciimat.cpp:50:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0, poz = 0; j < strlen(p); ++j) ^ asciimat.cpp:9:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] #define sz size() ^ asciimat.cpp:58:37: note: in expansion of macro 'sz' for (int w = 0; w < rev.sz; ++w) ^ asciimat.cpp:40:9: warning: unused variable 'lg' [-Wunused-variable] int lg = strlen(s), word_lg = 0, word_lg_max = 0, lin = 0; ^ asciimat.cpp:40:25: warning: unused variable 'word_lg' [-Wunused-variable] int lg = strlen(s), word_lg = 0, word_lg_max = 0, lin = 0; ^ asciimat.cpp:43:9: warning: variable 'poz' set but not used [-Wunused-but-set-variable] int poz = 0; ^ asciimat.cpp: In function 'void task2()': asciimat.cpp:124:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int j = 0, poz = 0; j < strlen(p); ++j) ^ asciimat.cpp:9:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] #define sz size() ^ asciimat.cpp:132:37: note: in expansion of macro 'sz' for (int w = 0; w < rev.sz; ++w) ^ asciimat.cpp:114:9: warning: unused variable 'lg' [-Wunused-variable] int lg = strlen(s), word_lg = 0, word_lg_max = 0, lin = 0; ^ asciimat.cpp:114:25: warning: unused variable 'word_lg' [-Wunused-variable] int lg = strlen(s), word_lg = 0, word_lg_max = 0, lin = 0; ^ asciimat.cpp:117:9: warning: variable 'poz' set but not used [-Wunused-but-set-variable] int poz = 0; ^ asciimat.cpp: In function 'int main()': asciimat.cpp:167:39: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("asciimat.in", "r", stdin); ^ asciimat.cpp:168:41: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("asciimat.out", "w", stdout); ^ asciimat.cpp: In function 'void task1()': asciimat.cpp:108:13: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized] cout << ans << '\n'; ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | OK. | 10 | 10 | ||
| 2 | 0 secunde | OK. | 10 | 10 | ||
| 3 | 0 secunde | OK. | 10 | 10 | ||
| 4 | 0 secunde | OK. | 10 | 10 | ||
| 5 | 0 secunde | OK. | 10 | 10 | ||
| 6 | 0 secunde | OK. | 10 | 10 | ||
| 7 | 0 secunde | OK. | 10 | 10 | ||
| 8 | 0.004 secunde | OK. | 15 | 15 | ||
| 9 | 0 secunde | OK. | 15 | 15 | ||
| Punctaj total | 100 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema asciimat 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ă.