#4617
Mark a construit o parcare dreptunghiulară, pe care a împărțit-o, utilizând marcaje, în locuri de parcare pătrate, organizate pe n linii (numerotate de la 1 la n) și m coloane (numerotate de la 1 la m). Astfel, un loc de parcare poate fi identificat prin numărul liniei şi numărul coloanei pe care acesta se află. Orice mașină poate fi parcată în interiorul unui loc de parcare, paralel cu liniile orizontale de marcaj, sau paralel cu liniile verticale, fără a depăși conturul pătratului corespunzător.
Scrieți un program care, cunoscând dimensiunile parcării, pozițiile întreruperilor din zid, numărul de mașini, iar pentru fiecare mașină numărul liniei și al coloanei corespunzătoare locului în care este parcată și modul de parcare a acesteia, rezolvă următoarele două cerinţe:
1) determină numărul de mașini care pot ieși din parcare fără a fi condiționate de mutarea sau de părăsirea parcării de către alte mașini (numărul de maşini care pot ieşi în prima serie);
2) determină numărul total maşini care pot ieşi din parcare, precum şi numărul de serii în care se realizează ieşirea tuturor acestor maşini.
OJI 2024, clasa a 7-a
| Problema | parking | Operații I/O |
parking.in/parking.out
|
|---|---|---|---|
| Limita timp | 0.2 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64722155 | Utilizator | |
| Fișier | parking.cpp | Dimensiune | 4.14 KB |
| Data încărcării | 26 Mai 2026, 09:06 | Scor/rezultat | 72 puncte |
parking.cpp: In function ‘bool potScoate(coords)’: parking.cpp:66:29: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 66 | if ((!cevaLaStanga({i, j}) && mat[i][0] == -1) || | ^ parking.cpp:66:32: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 66 | if ((!cevaLaStanga({i, j}) && mat[i][0] == -1) || | ^ parking.cpp:67:30: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 67 | !cevaLaDreapta({i, j}) && mat[i][m + 1] == -1) | ^ parking.cpp:67:33: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 67 | !cevaLaDreapta({i, j}) && mat[i][m + 1] == -1) | ^ parking.cpp:67:37: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] 67 | !cevaLaDreapta({i, j}) && mat[i][m + 1] == -1) | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ parking.cpp:74:24: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 74 | if ((!cevaSus({i, j}) && mat[0][j] == -1) || | ^ parking.cpp:74:27: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 74 | if ((!cevaSus({i, j}) && mat[0][j] == -1) || | ^ parking.cpp:75:24: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 75 | !cevaJos({i, j}) && mat[n + 1][j] == -1) | ^ parking.cpp:75:27: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 75 | !cevaJos({i, j}) && mat[n + 1][j] == -1) | ^ parking.cpp:75:31: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] 75 | !cevaJos({i, j}) && mat[n + 1][j] == -1) | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ parking.cpp: In function ‘int main()’: parking.cpp:110:48: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 110 | nodeMat[i][prevCol].dreapta = {i, j}; | ^ parking.cpp:110:51: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 110 | nodeMat[i][prevCol].dreapta = {i, j}; | ^ parking.cpp:111:41: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 111 | nodeMat[i][j].stanga = {i, prevCol}; | ^ parking.cpp:111:44: warning: narrowing conversion of ‘prevCol’ from ‘int’ to ‘short int’ [-Wnarrowing] 111 | nodeMat[i][j].stanga = {i, prevCol}; | ^~~~~~~ parking.cpp:124:45: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 124 | nodeMat[prevRand][j].jos = {i, j}; | ^ parking.cpp:124:48: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 124 | nodeMat[prevRand][j].jos = {i, j}; | ^ parking.cpp:125:38: warning: narrowing conversion of ‘prevRand’ from ‘int’ to ‘short int’ [-Wnarrowing] 125 | nodeMat[i][j].sus = {prevRand, j}; | ^~~~~~~~ parking.cpp:125:48: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 125 | nodeMat[i][j].sus = {prevRand, j}; | ^ parking.cpp:137:31: warning: narrowing conversion of ‘i’ from ‘int’ to ‘short int’ [-Wnarrowing] 137 | dq.push_back({i, j}); | ^ parking.cpp:137:34: warning: narrowing conversion of ‘j’ from ‘int’ to ‘short int’ [-Wnarrowing] 137 | dq.push_back({i, j}); | ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.001 secunde | OK. | 4 | 4 | ||
| 2 | 0.002 secunde | OK. | 4 | 4 | ||
| 3 | 0.002 secunde | OK. | 4 | 4 | ||
| 4 | 0.001 secunde | OK. | 4 | 4 | ||
| 5 | 0.002 secunde | OK. | 4 | 4 | ||
| 6 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 7 | 0.007 secunde | OK. | 4 | 4 | ||
| 8 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 9 | 0.026 secunde | OK. | 4 | 4 | ||
| 10 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 11 | 0.001 secunde | OK. | 4 | 4 | ||
| 12 | 0.001 secunde | OK. | 4 | 4 | ||
| 13 | 0.017 secunde | OK. | 4 | 4 | ||
| 14 | 0.003 secunde | OK. | 4 | 4 | ||
| 15 | 0.003 secunde | OK. | 4 | 4 | ||
| 16 | 0.029 secunde | OK. | 4 | 4 | ||
| 17 | 0.022 secunde | OK. | 4 | 4 | ||
| 18 | 0.015 secunde | OK. | 4 | 4 | ||
| 19 | 0.022 secunde | OK. | 4 | 4 | ||
| 20 | 0.018 secunde | OK. | 4 | 4 | ||
| 21 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 22 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 23 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 24 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 25 | 0.038 secunde | OK. | 4 | 4 | ||
| Punctaj total | 72 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema parking 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ă.