#1108
Traseu
Într-un oraș există un hotel de formă cubică, cu N
etaje, numerotate de la 1
la N
. Suprafața fiecărui etaj K
(1 ≤ K ≤ N
) este pătratică și este împărțită în N x N
camere identice alăturate, dispuse pe N
linii și N
coloane, fiecare cameră având drept etichetă un triplet de numere naturale (K L C
) (K=
etajul, L=
linia, C=
coloana, 1 ≤ L, C ≤ N
), ca în imaginea alăturată.
Dintre cele N x N x N
camere ale hotelului, una este specială deoarece în ea locuiește de mult timp un șoricel. Fiind isteț, el știe eticheta camerei în care se află precum și eticheta camerei în care bucătarul hotelului depozitează alimente.
Studiind hotelul, șoricelul a constatat că pe fiecare etaj, din orice cameră poate intra în toate camerele care au un perete comun cu aceasta (existând un mic orificiu pentru aerisire).
De asemenea, șoricelul a constatat că din fiecare cameră (situată la etajele 2
, 3
, …, sau N-1
) poate intra în camera situată imediat deasupra ei și în camera situată imediat sub ea.
Fiind un șoricel binecrescut, el nu intră în nicio cameră ocupată de clienți ca să nu-i deranjeze. Hotelul având mulți clienți, șoricelul trebuie să-și găsească cel mai scurt traseu de la camera lui la camera cu alimente, traseu care să treacă printr-un număr minim de camere, toate neocupate.
Se cere să se determine:
a) numărul de camere prin care trece cel mai scurt traseu al șoricelului de la camera lui la camera cu alimente (inclusiv camera lui şi camera cu alimente);
b) etichetele camerelor prin care trece traseul determinat la punctul a).
Problema | Traseu | Operații I/O |
traseu.in /traseu.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #50538134 | Utilizator | |
Fișier | traseu.cpp | Dimensiune | 1.90 KB |
Data încărcării | 14 Aprilie 2024, 09:07 | Scor / rezultat | Eroare de compilare |
traseu.cpp:8:19: error: 'int y1' redeclared as different kind of symbol int n, m, x1, x2, y1, y2, z1, z2, x, y, z; ^ In file included from /usr/include/features.h:374:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/os_defines.h:39, from /usr/include/i386-linux-gnu/c++/4.8/bits/c++config.h:426, from /usr/include/c++/4.8/iosfwd:38, from /usr/include/c++/4.8/ios:38, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from traseu.cpp:1: /usr/include/i386-linux-gnu/bits/mathcalls.h:241:1: error: previous declaration of 'double y1(double)' __MATHCALL (y1,, (_Mdouble_)); ^ traseu.cpp: In function 'int main()': traseu.cpp:25:8: error: cannot bind 'std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}' lvalue to 'std::basic_istream<char>&&' cin>>x1>>y1>>z1; ^ In file included from /usr/include/c++/4.8/fstream:38:0, from traseu.cpp:1: /usr/include/c++/4.8/istream:872:5: error: initializing argument 1 of 'std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = double(double)throw ()]' operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x) ^ traseu.cpp:27:13: error: invalid types 'int [102][102][double(double)throw ()]' for array subscript d[x1][y1][z1]=1; ^ traseu.cpp:32:24: error: no matching function for call to 'std::queue<ceva>::push(<brace-enclosed initializer list>)' q.push({x1, y1, z1}); ^ traseu.cpp:32:24: note: candidates are: In file included from /usr/include/c++/4.8/queue:64:0, from traseu.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 = ceva; _Sequence = std::deque<ceva, std::allocator<ceva> >; std::queue<_Tp, _Sequence>::value_type = ceva] 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 ceva&}' /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 = ceva; _Sequence = std::deque<ceva, std::allocator<ceva> >; std::queue<_Tp, _Sequence>::value_type = ceva] 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<ceva>::value_type&& {aka ceva&&}' traseu.cpp:54:25: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] while(!(x==x1 && y==y1 && z==z1)){ ^ traseu.cpp:69:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=0;i<sol.size();i++){ ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Traseu 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ă.