#718
Mihai a primit de ziua sa un joc de şah special. Tabla jocului are forma pătrată, de dimensiune N dar unele poziţii sunt marcate ca obstacole şi ele nu pot fi ocupate cu piese. În plus, jocul său are o singură piesă, numită “nebun”. Două poziţii pe tablă sunt desemnate ca poziţie iniţială şi poziţie finală. Mihai vrea să determine o modalitate de a deplasa nebunul, cu un număr minim de mutări, astfel încât acesta să ajungă din poziţia iniţială în poziţia finală. Mihai va respecta regulile de mutare a nebunului la jocul de şah, adică din poziţia curentă nebunul se poate muta doar pe diagonală, în oricare dintre cele 4 direcţii, oricâte poziţii deodată dar fără a sări peste obstacole. În plus, Mihai are voie la o excepţie de la această regulă: îi este permis să execute cel mult două mutări după regula de avansare a calului pe tabla de şah.
Dată fiind configuraţia tablei de şah precum şi poziţiile iniţială şi finală ale piesei, se cere determinarea numărului minim de mutări pentru a deplasa piesa între cele două poziţii.
| Problema | Sah2 | Operații I/O |
sah2.in/sah2.out
|
|---|---|---|---|
| Limita timp | 0.3 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
| Id soluție | #61406491 | Utilizator | |
| Fișier | sah2.cpp | Dimensiune | 1.80 KB |
| Data încărcării | 26 Noiembrie 2025, 19:37 | Scor/rezultat | Eroare de compilare |
sah2.cpp: In function 'int main()': sah2.cpp:65:15: error: no matching function for call to 'fill(int&, int&)' fill(x1,y1); ^ sah2.cpp:65:15: note: candidates are: In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0, from /usr/include/c++/4.8/ios:40, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from sah2.cpp:1: /usr/include/c++/4.8/bits/stl_algobase.h:721:5: note: template<class _ForwardIterator, class _Tp> void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) ^ /usr/include/c++/4.8/bits/stl_algobase.h:721:5: note: template argument deduction/substitution failed: sah2.cpp:65:15: note: candidate expects 3 arguments, 2 provided fill(x1,y1); ^ In file included from /usr/include/c++/4.8/deque:66:0, from /usr/include/c++/4.8/queue:60, from sah2.cpp:2: /usr/include/c++/4.8/bits/deque.tcc:921:5: note: template<class _Tp> void std::fill(const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, const std::_Deque_iterator<_Tp, _Tp&, _Tp*>&, const _Tp&) fill(const _Deque_iterator<_Tp, _Tp&, _Tp*>& __first, ^ /usr/include/c++/4.8/bits/deque.tcc:921:5: note: template argument deduction/substitution failed: sah2.cpp:65:15: note: mismatched types 'const std::_Deque_iterator<_Tp, _Tp&, _Tp*>' and 'int' fill(x1,y1); ^ In file included from /usr/include/c++/4.8/vector:65:0, from /usr/include/c++/4.8/queue:61, from sah2.cpp:2: /usr/include/c++/4.8/bits/stl_bvector.h:390:3: note: void std::fill(std::_Bit_iterator, std::_Bit_iterator, const bool&) fill(_Bit_iterator __first, _Bit_iterator __last, const bool& __x) ^ /usr/include/c++/4.8/bits/stl_bvector.h:390:3: note: candidate expects 3 arguments, 2 provided
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Sah2 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ă.