Trò chơi tháp Hà Nội là trò chơi nổi tiếng với những chiếc đĩa có kích thước đôi một khác nhau, có lỗ nằm ở giữa, nằm xuyên trên ba chiếc cọc A, B, C
Trò chơi bắt đầu bằng trạng thái các đĩa được chồng lên nhau ở cọc A, đĩa nhỏ nằm trên đĩa lớn, tức là đĩa nhỏ nhất được nằm trên cùng, tạo ra một dạng hình nón. Yêu cầu của trò chơi là chuyển toàn bộ số đĩa từ cọc A sang cọc C, tuân theo các quy tắc sau:
Chỉ sử dụng 3 cọc để chuyển.
Một lần chỉ được di chuyển một đĩa nằm trên cùng từ cọc này sang cọc khác.
Một đĩa chỉ được đặt lên một đĩa lớn hơn.
Trong bài toán này, chúng ta sẽ có n chiếc đĩa, đánh số từ 1 đến n theo thứ tự kích thước đĩa tăng dần. Ban đầu, các đĩa nằm rải rác ở ba cọc nhưng vẫn thỏa mãn điều kiện đĩa nhỏ nằm trên đĩa lớn và mục tiêu là chuyển toàn bộ đĩa thành một chồng đĩa ở cọc C.
Yêu cầu: Cho trạng thái các đĩa nằm ở các cọc, hãy tìm cách chuyển toàn bộ đĩa thành một chồng đĩa ở cọc C.
Input
Dòng đầu chứa số nguyên dương n.
Dòng thứ hai chứa một xâu gồm ~n~ kí tự, kí tự thứ ~i~ ~(i = 1,2, ..., n)~ bằng 'A' hoặc 'B' hoặc 'C' cho biết đĩa thứ i nằm ở cọc A hay cọc B hay cọc C.
Output
Dòng đầu chứa số nguyên ~s~ là số lần chuyển đĩa.
Dòng thứ ~j~ ~(j = 1, 2, ..., s)~ trong ~s~ dòng tiếp theo, mỗi dòng gồm đúng hai kí tự mô tả một thao tác chuyển đĩa. Cụ thể, kí tự thứ nhất là tên cọc chứa đĩa cần chuyển, kí tự thứ hai là tên cọc mà đĩa chuyển tới.
Scoring
Có 20% số test tương ứng với 20% số điểm bài có với ~n = 3~.
Có 30% số test khác ứng với 30% số điểm của bài có ~n \le 10~ và cả ~n~ đĩa ban đầu ở cọc A.
Có 20% số test khác ứng với 20% số điểm của bài có ~n \le 10~.
Có 30% số test còn lại với 30% số điểm còn lại của bài có ~n \le 20~.
Sample Input 1
3
AAC
Sample Output 1
3
AB
AC
BC
Bình luận
Ý tưởng