Fişierul intrare/ieşire:hanoig.in, hanoig.outSursăCampion 2006-2007
AutorEmanuela CerchezAdăugată dedevilkindSavin Tiberiu devilkind
Timp execuţie pe test0.05 secLimită de memorie5120 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Hanoig

Sa consideram 3 tije (notate A, B, C). Pe tija A se afla n discuri de k dimensiuni distincte d1> d2>...> dk.
Mai exact, exista m1 discuri de diametru d1, m2 discuri de diametru d2, ..., mk discuri de diametru dk .
Evident, m1 + m2 + ... + mk= n.
Discurile sunt asezate initial pe tija A in ordinea descrescatoare a dimensiunilor, privind de la baza spre varf (deci la baza sunt cele m1 discuri de diametru d1, apoi urmeaza cele m2 discuri de diametru d2, ...).
La o mutare se poate deplasa un singur disc de pe o tija pe alta, dar niciodata nu va fi plasat un disc de diamentru mai mare peste un disc cu diametru mai mic.
Scopul este de a muta toate discurile de pe tija A pe tija B, respectand permanent ordinea descrescatoare a dimensiunilor.
Tija C poate fi folosita ca tija de manevra.

Cerinta

Scrieti un program care sa determine numarul minim de mutari care trebuie sa fie executate pentru a deplasa cele n discuri de pe tija A pe tija B.

Date de intrare

Fisierul de intrare hanoig.in contine pe prima linie numarul natural k, cu semnificatia din enunt. Pe cea de a doua linie se afla k numere naturale separate prin cate un spatiu m1 m2 ... mk.

Date de iesire

Fisierul de iesire hanoig.out va contine o singura linie pe care va fi scris numarul minim de mutari care trebuie sa fie executate pentru a deplasa cele n= m1 + m2 + ... + mk discuri de pe tija A pe tija B.

Restrictii

  • 0 < k1000
  • 0 < mi1000, pentru orice i= 1, 2, ..., k
  • Discurile nu sunt numerotate, prin urmare discurile avand aceeasi dimensiune sunt considerate identice.

Exemplu

hanoig.inhanoig.out
2
2 3
8
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?