You are on page 1of 1

Tháp Hà Nội 2

Tên file chương trình hanoi2.*


Cho 3 cọc đĩa A, B, C, cọc A nằm bên trái, cọc B nằm giữa, cọc C nằm bên phải. Ban đầu cọc A có 𝑛 đĩa và
các đĩa được sắp thứ tự đĩa lớn ở dưới và đĩa nhỏ ở trên, cọc B và cọc C không có đĩa nào (các đĩa được đánh
thứ tự từ 1 đến 𝑛, đĩa có thứ tự nhỏ hơn có kích thước nhỏ hơn). Mỗi lần bạn được di chuyển 1 đĩa từ cọc này
sang cọc khác theo quy luật:
➢ Chỉ được đặt 1 đĩa lên cọc chưa có đĩa nào hoặc lên cọc có đĩa nằm trên cùng lớn hơn nó.
➢ Các đĩa chỉ có thể di chuyển sang cọc kề nó (1 trong 4 cách sau: A sang B, B sang A, B sang C, C sang
B). Lưu ý: khi di chuyển vẫn phải thoả điều kiện trên.
Yêu cầu: Hãy tìm cách di chuyển ít lần nhất để di chuyển toàn bộ 𝑛 đĩa sang cọc C.
Dữ liệu vào: Cho trong file văn bản hanoi2.inp gồm 1 số nguyên dương 𝑛.
Kết quả: Ghi ra file văn bản hanoi2.out như sau:
➢ Dòng đầu ghi số lần thực hiện các phép di chuyển.
➢ Các dòng tiếp theo, mỗi dòng ghi 1 phép di chuyển có dạng XY cho biết di chuyển 1 đĩa từ cọc X sang
cọc Y (ở đây X, Y là 1 trong 3 ký tự ‘A’, ‘B’, ‘C’).
Ví dụ:
hanoi2.inp hanoi2.out
1 2
AB
BC
2 8
AB
BC
AB
CB
BA
BC
AB
BC
Ràng buộc:
➢ 50% số điểm ứng với các test có 𝑛 ≤ 5
➢ 50% số điểm ứng với các test có 𝑛 ≤ 12

You might also like