#3376
asciimat
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 | #41332948 | Utilizator | |
Fișier | asciimat.cpp | Dimensiune | 4.24 KB |
Data încărcării | 19 Ianuarie 2023, 15:10 | 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 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ă.