#2527
Turnurile din Hanoi este un joc matematic sau, dacă vreți, un puzzle. Este format din trei tije A, B și C și un număr variabil de discuri, de diferite diametre. Inițial discurile sunt așezate în ordine descrescătoare a diametrelor pe tija A, de la vârf către bază, astfel încât să formeze un turn.
Scopul jocului este acela de a muta toate discurile de pe tija A pe tija C folosind ca tijă intermediară tija B, respectând următoarele reguli:
Cerința
Dacă se cunoaște numărul n de discuri aflate pe tija A, să se determine șirul mutărilor necesare pentru ca toate discurile să fie mutate pe tija C.
| Problema | hanoi | Operații I/O |
hanoi.in/hanoi.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64599552 | Utilizator | |
| Fișier | hanoi.cpp | Dimensiune | 520 B |
| Data încărcării | 18 Mai 2026, 08:17 | Scor/rezultat | Eroare de compilare |
hanoi.cpp:4:13: error: variable ‘std::ifstream cin’ has initializer but incomplete type 4 | ifstream cin("hanoi.in"); | ^ hanoi.cpp:5:14: error: variable ‘std::ofstream cout’ has initializer but incomplete type 5 | ofstream cout("hanoi.out"); | ^ hanoi.cpp: In function ‘void hanoi(int, char, char, char)’: hanoi.cpp:12:9: error: reference to ‘cout’ is ambiguous 12 | cout << a << "->" << c << '\n'; | ^~~~ In file included from hanoi.cpp:1: /usr/include/c++/13/iostream:63:18: note: candidates are: ‘std::ostream std::cout’ 63 | extern ostream cout; ///< Linked to standard output | ^~~~ hanoi.cpp:5:10: note: ‘<typeprefixerror>cout’ 5 | ofstream cout("hanoi.out"); | ^~~~ hanoi.cpp: In function ‘int main()’: hanoi.cpp:20:5: error: reference to ‘cin’ is ambiguous 20 | cin >> n; | ^~~ /usr/include/c++/13/iostream:62:18: note: candidates are: ‘std::istream std::cin’ 62 | extern istream cin; ///< Linked to standard input | ^~~ hanoi.cpp:4:10: note: ‘<typeprefixerror>cin’ 4 | ifstream cin("hanoi.in"); | ^~~ hanoi.cpp:25:5: error: reference to ‘cout’ is ambiguous 25 | cout << put-1 << endl; | ^~~~ /usr/include/c++/13/iostream:63:18: note: candidates are: ‘std::ostream std::cout’ 63 | extern ostream cout; ///< Linked to standard output | ^~~~ hanoi.cpp:5:10: note: ‘<typeprefixerror>cout’ 5 | ofstream cout("hanoi.out"); | ^~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema hanoi 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ă.