#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 | #64069368 | Utilizator | |
| Fișier | hanoi.cpp | Dimensiune | 483 B |
| Data încărcării | 15 Aprilie 2026, 12:57 | Scor/rezultat | 0 puncte |
hanoi.cpp: In function ‘void _Z5Hanoiiccc.part.0(int, char, char, char)’: hanoi.cpp:12:17: warning: array subscript 2 is above array bounds of ‘char [2]’ [-Warray-bounds=] 12 | ab[nr][2]=c; | ~~~~~~~~^ hanoi.cpp:5:6: note: while referencing ‘ab’ 5 | char ab[15][2]; | ^~ hanoi.cpp:12:17: warning: array subscript 2 is above array bounds of ‘char [2]’ [-Warray-bounds=] 12 | ab[nr][2]=c; | ~~~~~~~~^ hanoi.cpp:5:6: note: while referencing ‘ab’ 5 | char ab[15][2]; | ^~ In function ‘void Hanoi(int, char, char, char)’, inlined from ‘void Hanoi(int, char, char, char)’ at hanoi.cpp:6:6: hanoi.cpp:12:17: warning: array subscript 2 is above array bounds of ‘char [2]’ [-Warray-bounds=] 12 | ab[nr][2]=c; | ~~~~~~~~^ hanoi.cpp: In function ‘void Hanoi(int, char, char, char)’: hanoi.cpp:5:6: note: while referencing ‘ab’ 5 | char ab[15][2]; | ^~ In function ‘void Hanoi(int, char, char, char)’, inlined from ‘void Hanoi(int, char, char, char)’ at hanoi.cpp:6:6: hanoi.cpp:12:17: warning: array subscript 2 is above array bounds of ‘char [2]’ [-Warray-bounds=] 12 | ab[nr][2]=c; | ~~~~~~~~^ hanoi.cpp: In function ‘void Hanoi(int, char, char, char)’: hanoi.cpp:5:6: note: while referencing ‘ab’ 5 | char ab[15][2]; | ^~ hanoi.cpp: In function ‘int main()’: hanoi.cpp:24:38: warning: array subscript 2 is above array bounds of ‘char [2]’ [-Warray-bounds=] 24 | cout<<ab[i][1]<<"->"<<ab[i][2]<<endl; | ~~~~~~~^ hanoi.cpp:5:6: note: while referencing ‘ab’ 5 | char ab[15][2]; | ^~
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 0 | 0.001 secunde | Raspuns gresit. | 10 | 0 | Exemplu | |
| 1 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 2 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 3 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 4 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 5 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 6 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 7 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 8 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| 9 | 0.001 secunde | Raspuns gresit. | 10 | 0 | ||
| Punctaj total | 0 | |||||
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ă.