Móng và Não
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
4.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Cho một đồ thị có hướng gồm đỉnh và cạnh. Hai người chơi Não và Móng cùng đặt hai quân cờ trên đồ thị (quân của mỗi người tại một đỉnh khác nhau). Họ thực hiện các bước đi luân phiên nhau như sau: mỗi bước, Não chọn một trong hai quân cờ, rồi Móng phải di chuyển quân cờ đó dọc theo một cạnh ra của đỉnh đó.
Quy tắc chiến thắng:
- Não thắng nếu Móng không thể di chuyển (quân cờ được chọn đang ở đỉnh không có cạnh ra, hoặc cạnh ra duy nhất dẫn đến đỉnh có quân còn lại).
- Móng thắng nếu trò chơi kéo dài mãi mãi.
Hai quân cờ không được phép cùng đứng trên một đỉnh. Nếu Móng bị buộc di chuyển đến đỉnh có quân kia, trò chơi kết thúc và Não thắng (vì Móng không có nước đi hợp lệ).
Cho truy vấn, mỗi truy vấn cho hai đỉnh xuất phát của hai quân cờ, hãy xác định ai thắng khi cả hai chơi tối ưu.
Dữ liệu vào
- Dòng đầu: hai số nguyên và (, ).
- dòng tiếp theo: mỗi dòng gồm hai số nguyên và — cạnh có hướng từ đến .
- Dòng tiếp theo: số nguyên ().
- dòng tiếp theo: mỗi dòng gồm hai số nguyên và () — vị trí xuất phát của hai quân cờ.
Đồ thị không có khuyên và không có cạnh bội.
Dữ liệu ra
Một xâu ký tự độ dài . Ký tự thứ là B nếu Não thắng truy vấn thứ , ngược lại là H.
Ràng buộc
- Test 2–3: ,
- Test 4–9:
- Test 10–21: không có ràng buộc thêm
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 9 10 1 2 2 3 3 4 4 7 3 5 1 6 6 8 8 9 9 6 7 2 4 1 5 1 2 1 6 2 4 |
BHHB | Truy vấn 1: Não thắng vì đỉnh 5 không có cạnh ra. Truy vấn 2–3: Móng có thể đi mãi vòng. Truy vấn 4: Não thắng vì đỉnh 5 (đỉnh duy nhất không có cạnh ra trong thành phần liên quan) được nối vào chuỗi từ đỉnh 4. |
Bình luận