Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P147PROC - ROUND 7C - Tháp Hà Nội |
Bài toán Tháp Hà Nội cho trước n đĩa kích thước khác nhau, được đánh số từ 1 (đĩa nhỏ nhất) đến n (đĩa lớn nhất). Có ba cọc A, B, C. Ban đầu cả n đĩa được xếp ở cọc A theo thứ tự tạo ra một dạng hình nón. Cần di chuyển n đĩa này sang cọc C với quy tắc.
* Một lần chỉ được di chuyển một đĩa;
* Một đĩa chỉ có thể được đặt lên một đĩa lớn hơn (không nhất thiết hai đĩa này phải có kích thước liền kề, tức là đĩa nhỏ nhất có thể nằm trên đĩa lớn nhất).
Với 3 cọc được ký hiệu là CocNguon, CocDich, CocTG (trung gian); thủ tục đệ quy để giải bài toán này như sau:
Bài toán đặt ra là cho trước 2 số nguyên n và k. Hãy xác định bước di chuyển thứ k theo thuật toán trên.
Input
Mỗi bộ test gồm 2 số nguyên dương k và n viết trên một dòng (k < 2^n) – giá trị n không quá 60. Input kết thúc với n=k=0.
Output
Với mỗi bộ test, viết trên một dòng thứ tự case, sau đó là 3 giá trị: số thứ tự đĩa, cột nguồn, cột đích trong bước di chuyển thứ k. Các giá trị cách nhau một khoảng trống.
Example
Input: 1 3
5 3
8 4
0 0 Output: Case 1: 1 A C
Case 2: 1 B A
Case 3: 4 A C
Được gửi lên bởi: | adm |
Ngày: | 2014-03-21 |
Thời gian chạy: | 5s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |
hide comments
2021-10-04 22:32:45
https://ideone.com/hGBIl5 |
|
2017-04-10 10:50:41
đề khó hiểu thế |
|
2014-11-06 15:42:02 Bác Ba Phì
Đọc kĩ đề nhé mọi người. Test cho k trước, n sau nhé @@ |
|
2014-04-05 20:09:33 Hat Dau Nho
Toan 0.00s lam the nao nhi |
|
2014-04-05 10:55:16 Trần Vãn Dương D10CN2
2^n |
|
2014-03-24 16:51:23 Cao Thị Trang
de bai cho k<2*n; sao test 1 lai la 1 3 nhi? |