#1451
Iceberg
Se dă o matrice reprezentând o zonă dintr-un ocean ce conține un iceberg; valorile egale cu 1
fac parte din iceberg, iar cele egale cu 0
reprezintă apă.
Se știe că icebergul este înconjurat de apa (nu există nici o valoare de 1
pe marginea matricei) și că într-un interval de timp se topesc toate zonele icebergului care au cel puțin doua laturi vecine cu apa.
Determinați și afișați cate intervale de timp sunt necesare ca icebergul să se topească în întregime. De asemenea, afișați pentru fiecare interval de timp câte poziții de gheață are icebergul la începutul intervalului.
Problema | Iceberg | Operații I/O | tastatură/ecran |
---|---|---|---|
Limita timp | 0.01 secunde | Limita memorie |
Total: 8 MB
/
Stivă 8 MB
|
Id soluție | #53194643 | Utilizator | |
Fișier | iceberg.cpp | Dimensiune | 3.03 KB |
Data încărcării | 21 Octombrie 2024, 00:23 | Scor / rezultat | Eroare de compilare |
iceberg.cpp: In function 'void addQueue(std::vector<std::pair<int, int> >&, int, int)': iceberg.cpp:13:7: error: 'class std::vector<std::pair<int, int> >' has no member named 'push' q.push({mat[i][j] + 1, i, j}); ^ iceberg.cpp: In function 'void solve()': iceberg.cpp:37:33: error: invalid initialization of reference of type 'std::vector<std::pair<int, int> >&' from expression of type 'std::queue<std::pair<int, int> >' addQueue(q, i, j); ^ iceberg.cpp:12:6: error: in passing argument 1 of 'void addQueue(std::vector<std::pair<int, int> >&, int, int)' void addQueue(vector<pair<int, int>> &q, int i, int j) { ^ iceberg.cpp:57:77: error: no matching function for call to 'std::queue<std::pair<int, int> >::push(<brace-enclosed initializer list>)' q.push({mat[x1 + i][y1 + j] + 1, x1 + i, y1 + j}); ^ iceberg.cpp:57:77: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from iceberg.cpp:2: /usr/include/c++/4.8/bits/stl_queue.h:212:7: note: void std::queue<_Tp, _Sequence>::push(const value_type&) [with _Tp = std::pair<int, int>; _Sequence = std::deque<std::pair<int, int>, std::allocator<std::pair<int, int> > >; std::queue<_Tp, _Sequence>::value_type = std::pair<int, int>] push(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:212:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<int, int>&}' /usr/include/c++/4.8/bits/stl_queue.h:217:7: note: void std::queue<_Tp, _Sequence>::push(std::queue<_Tp, _Sequence>::value_type&&) [with _Tp = std::pair<int, int>; _Sequence = std::deque<std::pair<int, int>, std::allocator<std::pair<int, int> > >; std::queue<_Tp, _Sequence>::value_type = std::pair<int, int>] push(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:217:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::queue<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}' iceberg.cpp:93:77: error: no matching function for call to 'std::queue<std::pair<int, int> >::push(<brace-enclosed initializer list>)' q.push({mat[x1 + i][y1 + j] + 1, x1 + i, y1 + j}); ^ iceberg.cpp:93:77: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from iceberg.cpp:2: /usr/include/c++/4.8/bits/stl_queue.h:212:7: note: void std::queue<_Tp, _Sequence>::push(const value_type&) [with _Tp = std::pair<int, int>; _Sequence = std::deque<std::pair<int, int>, std::allocator<std::pair<int, int> > >; std::queue<_Tp, _Sequence>::value_type = std::pair<int, int>] push(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:212:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::pair<int, int>&}' /usr/include/c++/4.8/bits/stl_queue.h:217:7: note: void std::queue<_Tp, _Sequence>::push(std::queue<_Tp, _Sequence>::value_type&&) [with _Tp = std::pair<int, int>; _Sequence = std::deque<std::pair<int, int>, std::allocator<std::pair<int, int> > >; std::queue<_Tp, _Sequence>::value_type = std::pair<int, int>] push(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_queue.h:217:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::queue<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}' iceberg.cpp:32:17: warning: unused variable 'x2' [-Wunused-variable] int x1, y1, x2, y2, counter = 0, past = 0; ^ iceberg.cpp:32:21: warning: unused variable 'y2' [-Wunused-variable] int x1, y1, x2, y2, counter = 0, past = 0; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Iceberg 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ă.