#700
Labir
Şoricelul Jerry este (pentru a câta oară ?) în labirint. Labirintul poate fi codificat ca o matrice cu n
linii şi m
coloane formată din n*m
celule pătratice identice. Liniile se numerotează de la 1
la n
, iar coloanele de la 1
la m
. Labirintul este format din celule libere şi din celule ocupate de pereţii labirintului.
La momentul iniţial, Jerry se găseşte într-o anumită celulă liberă şi misiunea lui este să ajungă la destinaţie într-o altă celulă liberă precizată. Șoricelul se poate deplasa din celula curentă în oricare dintre cele patru celule cu care aceasta are în comun o latură şi nu poate ieşi în afara labirintului. Este posibil ca el să nu poată să ajungă de la poziţia iniţială la cea finală trecând doar prin celule libere. În această situație el este nevoit să sfărâme peretele în anumite celule. Jerry şi-a pregătit dinamită în acest scop, pentru că nu i se pare optim să roadă peretele cu dinţii.
Cunoscând dimensiunile n
şi m
ale labirintului, coordonatele celulei de plecare şi ale celulei destinaţie, precum şi coordonatele celulelor ocupate de pereţi, să se determine numărul minim de celule ocupate, pe care Jerry trebuie să le dinamiteze pentru a putea să ajungă la destinaţie.
Problema | Labir | Operații I/O |
labir.in /labir.out
|
---|---|---|---|
Limita timp | 0.2 secunde | Limita memorie |
Total: 64 MB
/
Stivă 32 MB
|
Id soluție | #54138371 | Utilizator | |
Fișier | labir.cpp | Dimensiune | 1.44 KB |
Data încărcării | 20 Noiembrie 2024, 16:54 | Scor / rezultat | Eroare de compilare |
labir.cpp: In function 'int main()': labir.cpp:39:79: error: wrong number of template arguments (0, should be 1) priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<>> pq; ^ In file included from /usr/include/c++/4.8/string:48:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/ostream:38, from /usr/include/c++/4.8/iostream:39, from labir.cpp:1: /usr/include/c++/4.8/bits/stl_function.h:222:12: error: provided for 'template<class _Tp> struct std::greater' struct greater : public binary_function<_Tp, _Tp, bool> ^ labir.cpp:39:80: error: template argument 3 is invalid priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<>> pq; ^ labir.cpp:39:85: error: invalid type in declaration before ';' token priority_queue<tuple<int, int, int>, vector<tuple<int, int, int>>, greater<>> pq; ^ labir.cpp:40:8: error: request for member 'emplace' in 'pq', which is of non-class type 'int' pq.emplace(0, xi, yi); ^ labir.cpp:42:16: error: request for member 'empty' in 'pq', which is of non-class type 'int' while (!pq.empty()) { ^ labir.cpp:43:14: error: expected unqualified-id before '[' token auto [d, x, y] = pq.top(); ^ labir.cpp:44:12: error: request for member 'pop' in 'pq', which is of non-class type 'int' pq.pop(); ^ labir.cpp:46:13: error: 'd' was not declared in this scope if (d > dist[x][y]) continue; ^ labir.cpp:46:22: error: 'x' was not declared in this scope if (d > dist[x][y]) continue; ^ labir.cpp:46:25: error: 'y' was not declared in this scope if (d > dist[x][y]) continue; ^ labir.cpp:49:22: error: 'x' was not declared in this scope int nx = x + dx[dir]; ^ labir.cpp:50:22: error: 'y' was not declared in this scope int ny = y + dy[dir]; ^ labir.cpp:53:32: error: 'd' was not declared in this scope int new_cost = d + grid[nx][ny]; ^ labir.cpp:56:24: error: request for member 'emplace' in 'pq', which is of non-class type 'int' pq.emplace(new_cost, nx, ny); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Labir 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ă.