Quân Tốt cờ tướng
Cho bàn cờ tướng với một dòng sông như hình vẽ. Khác với cờ Vua, trong cờ Tướng, các quân cờ không được đặt ở giữa các ô vuông mà được đặt ở giữa các đường kẻ ngang và dọc.
Trong cờ tướng, quân Tốt là quân di chuyển từng ô một tiến về phía trước, không đi lùi. Sau khi sang sông, quân Tốt có thể đi sang trái một ô, sang phải một ô hoặc tiến về trước một ô. Ban đầu, có 5 vị trí đặt quân Tốt là A, B, C, D, E như hình vẽ.
Yêu cầu: Giả sử có một quân địch đang ở vị trí (\(x\), \(y\)), hàng \(x\) cột \(y\). Hỏi quân tốt nào có thể đi tiêu diệt quân địch nhanh nhất (số bước di chuyển đến vị trí quân địch ít nhất).
Input
Một dòng duy nhất là hai số nguyên \(x\), \(y\) (hàng \(x\), cột \(y\)). Mỗi số cách nhau một khoảng trắng (0 \(<=\) \(x\) \(<=\) 9 và 0 \(<=\) \(y\) \(<=\) 8). Dữ liệu cho đảm bảo quân địch không nằm ở vị trí của 5 quân tốt.
Output
Nếu có quân Tốt tiêu diệt được quân địch, in ra 2 dòng:
Dòng đầu là số bước đi ngắn nhất đến vị trí quân địch của quân Tốt đó
Dòng thứ hai là tên của quân Tốt (5 quân tốt lần lượt có tên là A, B, C, D, E). Nếu có hai quân Tốt có số bước đi ngắn nhất bằng nhau thì in tên quân tốt mà xuất hiện trước trong bảng chữ cái
Nếu không có quân Tốt nào đến được vị trí quân địch:
In một dòng duy nhất giá trị -1
Ví dụ
Input 1
7 1
Output 1
5
A
Input 2
9 8
Output 2
6
E
Input 3
1 1
Output 3
-1
Giải thích
Ví dụ 1: Quân Tốt A, B đều mất ít nhất 5 bước đi để đến vị trị hàng 7 cột 1. Ta sẽ in ra tên của quân tốt đứng trước trong bảng chữ cái - quân Tốt A
Ví dụ 2: Chỉ có duy nhất quân Tốt E đi được đến vị trị hàng 9 cột 8 với số bước ngắn nhất là 6
Ví dụ 3: Không có quân Tốt nào đi được đến vị trí hàng 1 cột 1 nên đáp án là -1
Comments
Code tham khảo C
Bài này thực chất là if else cái là ra nhưng đợt thi đầu óc mình không tỉnh táo làm bằng BFS :3 . Mình cũng thấy BFS bài này khá là dài nhưng mà cũng hay hay . Nên ae muốn luyện BFS hay cần cách khác có thể xem qua cách BFS của mình nhá . hehe . Nhìn hay phết Code C++ : https://ideone.com/p3wTyZ
Đúng lun, bài này ngồi nghĩ if else tí cũng ra, nhưng mà làm BFS thấy vẫn hay :3 :3
Bài này anh sinh test bằng BFS đúng khum :3333
Chính xác :v :v