#1998
NASA plănuiește o nouă misiune Rover pe Marte în anul 2020. Principalul obiectiv al acestei misiuni este de a determina, cu ajutorul unui nou Rover, dacă a existat în trecut viață pe Marte. Până când va fi lansată misiunea, Roverul este supus la tot felul de teste în laboratoarele NASA. Într-unul din teste, Roverul trebuie să parcurgă o suprafață de forma unui caroiaj cu N
linii și N
coloane. Acesta pornește din zona de coordonate (1,1)
și trebuie să ajungă în zona de coordonate (N,N)
, la fiecare pas putându-se deplasa din zona în care se află într-una din zonele învecinate la nord, sud, est sau vest. Pentru fiecare zonă de coordonate (i,j)
se cunoaște A[i,j]
, stabilitatea terenului din acea zonă. Știind că Roverul are o greutate G
, o zonă cu stabilitatea terenului cel puțin egală cu G
se consideră o zonă sigură pentru deplasarea Roverului, iar o zonă cu stabilitatea terenului mai mică decât G
se consideră o zonă periculoasă pentru Rover.
1. Determinați numărul minim posibil de zone periculoase pe care le traversează Roverul pentru a ajunge din zona (1,1)
în zona (N,N)
.
2. Determinați greutatea maximă pe care o poate avea un Rover care să ajungă din zona (1,1)
în zona (N,N)
, fără a traversa nicio zonă periculoasă pentru el.
OJI 2017, Clasa a X-a
Problema | Rover | Operații I/O |
![]() rover.in /rover.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 32 MB
|
Id soluție | #58357219 | Utilizator | |
Fișier | rover.cpp | Dimensiune | 2.48 KB |
Data încărcării | 29 Mai 2025, 09:00 | Scor / rezultat | Eroare de compilare |
rover.cpp: In function 'int cerinta1()': rover.cpp:22:14: error: expected unqualified-id before '[' token auto [x, y] = dq.front(); dq.pop_front(); ^ rover.cpp:25:22: error: 'x' was not declared in this scope int nx = x + dx[d], ny = y + dy[d]; ^ rover.cpp:26:28: error: 'ny' was not declared in this scope if (nx >= 0 && ny >= 0 && nx < N && ny < N) { ^ rover.cpp:28:44: error: 'y' was not declared in this scope if (dist[nx][ny] > dist[x][y] + cost) { ^ rover.cpp:31:47: error: no matching function for call to 'std::deque<std::pair<int, int> >::push_front(<brace-enclosed initializer list>)' dq.push_front({nx, ny}); ^ rover.cpp:31:47: note: candidates are: In file included from /usr/include/c++/4.8/deque:64:0, from rover.cpp:3: /usr/include/c++/4.8/bits/stl_deque.h:1359:7: note: void std::deque<_Tp, _Alloc>::push_front(const value_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::deque<_Tp, _Alloc>::value_type = std::pair<int, int>] push_front(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_deque.h:1359: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_deque.h:1372:7: note: void std::deque<_Tp, _Alloc>::push_front(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::deque<_Tp, _Alloc>::value_type = std::pair<int, int>] push_front(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_deque.h:1372:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::deque<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}' rover.cpp:33:46: error: no matching function for call to 'std::deque<std::pair<int, int> >::push_back(<brace-enclosed initializer list>)' dq.push_back({nx, ny}); ^ rover.cpp:33:46: note: candidates are: In file included from /usr/include/c++/4.8/deque:64:0, from rover.cpp:3: /usr/include/c++/4.8/bits/stl_deque.h:1390:7: note: void std::deque<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::deque<_Tp, _Alloc>::value_type = std::pair<int, int>] push_back(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_deque.h:1390: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_deque.h:1404:7: note: void std::deque<_Tp, _Alloc>::push_back(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::deque<_Tp, _Alloc>::value_type = std::pair<int, int>] push_back(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_deque.h:1404:7: note: no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::deque<std::pair<int, int> >::value_type&& {aka std::pair<int, int>&&}' rover.cpp: In function 'bool bfsSafe(int)': rover.cpp:52:14: error: expected unqualified-id before '[' token auto [x, y] = q.front(); q.pop(); ^ rover.cpp:53:13: error: 'x' was not declared in this scope if (x == N-1 && y == N-1) return true; ^ rover.cpp:53:25: error: 'y' was not declared in this scope if (x == N-1 && y == N-1) return true; ^ rover.cpp:56:22: error: 'x' was not declared in this scope int nx = x + dx[d], ny = y + dy[d]; ^ rover.cpp:57:28: error: 'ny' was not declared in this scope if (nx >= 0 && ny >= 0 && nx < N && ny < N) { ^ rover.cpp:60:36: error: no matching function for call to 'std::queue<std::pair<int, int> >::push(<brace-enclosed initializer list>)' q.push({nx, ny}); ^ rover.cpp:60:36: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from rover.cpp:4: /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::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::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>&&}'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Rover 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ă.