#1761
Renumitul nostru brutar a avut azi noapte un vis tare ciudat: acesta trăia într-un univers paralel în care nu omul îl mănâncă pe blat ci blatul îl mănâncă pe om… (eh, poate nu chiar atât de paralel). Astfel, brutarul nostru a fost atacat de blatul pe care tocmai îl pregătise (pentru prăjituri, evident) și a încercat să scape. Acesta a ieșit din brutărie și a ajuns în fața unui câmp de formă dreptunghiulară, cu dimensiunile cunoscute, ce poate fi împărțit în celule elementare cu latura de o unitate (exact ca o matrice!). Acesta poate intra pe câmp prin orice celulă a primei linii și trebuie să ajungă în orice celulă a ultimei linii (blatul se va întări până va ajunge acolo). Unele celule îi sunt inaccesibile din cauza diverselor obstacole (pietre, pomi, gropi,etc.)
Brutarul nostru se poate deplasa în 6
moduri:
Nord
, Vest
, Sud
, Est
)Mutările speciale vor fi citite din fișier și o mutare se va codifica astfel: xA yB
, unde x
și y
sunt numere naturale nenule iar A
și B
sunt două caractere ce codifică direcția (A
poate fi 'N'
sau 'S'
de la Nord
respectiv Sud
iar B
poate fi ‘E’
sau ‘V’
de la Est
respectiv Vest
)
O mutare specială se poate face dacă celula destinație nu este ocupată de un obstacol și dacă nu implică ieșirea brutarului din matrice.
Brutarul vă roagă să îi specificați un traseu cu număr minim de celule parcurse, ce pornește de pe prima linie și se termină pe ultima linie, pentru a nu fi blătuit (mâncat de blat).
Concursul EMPOWERSOFT, 2016
Problema | Brutar | Operații I/O |
![]() brutar.in /brutar.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 16 MB
/
Stivă 4 MB
|
Id soluție | #56914658 | Utilizator | |
Fișier | brutar.cpp | Dimensiune | 2.29 KB |
Data încărcării | 10 Martie 2025, 19:18 | Scor / rezultat | Eroare de compilare |
brutar.cpp: In function 'void bfs(SpecialMove, SpecialMove)': brutar.cpp:40:14: error: expected unqualified-id before '[' token auto [x, y] = q.front(); ^ brutar.cpp:44:13: error: 'x' was not declared in this scope if (x == N - 1) { ^ brutar.cpp:46:36: error: 'y' was not declared in this scope pair<int, int> p = {x, y}; ^ brutar.cpp:46:37: error: could not convert '{x, <expression error>}' from '<brace-enclosed initializer list>' to 'std::pair<int, int>' pair<int, int> p = {x, y}; ^ brutar.cpp:51:45: error: 'reverse' was not declared in this scope reverse(path.begin(), path.end()); ^ brutar.cpp:57:22: error: 'x' was not declared in this scope int nx = x + dx[i], ny = y + dy[i]; ^ brutar.cpp:58:30: error: 'ny' was not declared in this scope if (is_valid(nx, ny) && !visited[nx][ny]) { ^ brutar.cpp:60:42: error: 'y' was not declared in this scope parent[nx][ny] = x * M + y; ^ brutar.cpp:61:32: error: no matching function for call to 'std::queue<std::pair<int, int> >::push(<brace-enclosed initializer list>)' q.push({nx, ny}); ^ brutar.cpp:61:32: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from brutar.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>&&}' brutar.cpp:69:17: error: 'x' was not declared in this scope x -= 1; ^ brutar.cpp:70:34: error: 'y' was not declared in this scope if (!is_valid(x, y)) break; ^ brutar.cpp: In function 'int main()': brutar.cpp:90:54: error: 'struct SpecialMove' has no member named 'dir' cin >> move1.x >> move1.dir1 >> move2.x >> move2.dir ^ brutar.cpp:90:54: error: expected ';' at end of input brutar.cpp:90:54: error: expected '}' at end of input
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Brutar 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ă.