TLEoj Contest #02 - Chiếu hết bằng Vua và Xe

Xem PDF

Nộp bài

Điểm: 2100 (thành phần)
Thời gian: 1.75s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

(Bài toán này yêu cầu bạn phải hiểu về luật chơi, các thuật ngữ cơ bản và cách đánh dấu các ô của bộ môn cờ vua)

(Nếu bạn muốn kiểm tra code của mình với bộ test khác hơn test ví dụ, bạn có thể sử dụng bảng phân tích của https://www.chess.com/analysis?tab=analysis để có được kết quả chính xác (độ sâu khoảng 40 sẽ cho kết quả đúng))

Bạn được cho một thế cờ có hai quân Vua của hai bên và một quân Xe. Với mỗi trường hợp Trắng đi trước hoặc Đen đi trước, bạn cần xác định xem:

  1. Thế cờ được cho có hợp lệ hay không trong trường hợp đó.
  2. Kết quả của ván cờ như thế nào trong trường hợp đó nếu cả hai bên cùng chơi tối ưu.
  3. Nếu có một bên chiến thắng, hãy cho biết bên đó thắng trong bao nhiêu nước.
Input, Output và Scoring
Input (bàn phím)
  • Dòng đầu tiên gồm một số nguyên dương t là số thế cờ bạn cần phải giải quyết (t \le 400).
  • 8 \times t dòng tiếp theo, mỗi dòng là một chuỗi gồm 8 ký tự và mỗi nhóm 8 dòng mô tả một thế cờ. Các ký tự trên các dòng có thể là:
    • . nếu ô cờ là ô cờ trống.
    • K nếu ô cờ là quân Vua Trắng và k nếu ô cờ là quân Vua Đen.
    • R nếu ô cờ là quân Xe Trắng và r nếu ô cờ là quân Xe Đen.
  • Dữ liệu đầu vào đảm bảo mỗi bên có đúng một quân Vua và trên bàn cờ có đúng một quân Xe (có đúng một chữ K hoa, một chữ k thường và một chữ R hoặc r trong mỗi 8 dòng ở input).
  • Input mẫu có chứa một số dòng trống, để bạn dễ phân biệt các thế cờ với nhau (nhưng trong test chấm thì sẽ không có những dòng trống này)
Output (màn hình)
  • Gồm 2 \times t dòng, dòng thứ 2 \times i - 1 là đánh giá về thế cờ thứ i nếu Trắng đi trước và dong thứ 2 \times i là đánh giá về thế cờ thứ i khi Đen đi trước. Mỗi dòng gồm ba chuỗi ký tự cách nhau theo một dấu cách.
    • Nếu thế cờ hợp lệ, chuỗi ký tự đầu tiên sẽ là Valid. Ngược lại, chuỗi ký tự đầu tiên sẽ là Invalid.
    • Nếu thế cờ không hợp lệ, chuỗi ký tự thứ hai sẽ là -1. Ngược lại, chuỗi ký tự thứ hai sẽ là Black trong trường hợp Đen thắng, White trong trường hợp Trắng thắng và Draw trong trường hợp hai bên hòa nhau.
    • Nếu thế cờ không hợp lệ hoặc hai bên hòa nhau, chuỗi ký tự thứ ba sẽ là -1. Ngược lại, chuỗi ký tự thứ ba sẽ là số nước đi bên thắng cần để chiến thắng ván cờ.
Scoring
  • Điểm của một test sẽ được chia đều cho các dòng. Với mỗi dòng, nếu kết quả của bạn khớp với đáp án ở chuỗi ký tự đầu tiên, bạn được 40\% số điểm; nếu kết quả của bạn khớp với đáp án ở hai chuỗi ký tự đầu tiên, bạn được thêm 20\% số điểm, và nếu kết quả của bạn hoàn toàn khớp với đáp án, bạn được thêm 40\% số điểm.
Sample
Input (bàn phím)
3

K.......
........
k.......
........
........
........
........
.r......

........
......K.
........
...k..R.
........
........
........
........

.K....r.
........
.k......
........
........
........
........
........
Output (màn hình)
Valid Draw -1
Valid Black 3
Invalid -1 -1
Valid White 15
Valid Black 0
Invalid -1 -1
Note
  • Ở thế cờ đầu tiên (hình minh họa 1, nhưng đổi quân Đen thành quân Trắng và ngược lại) và Đen đi trước, Đen có thể đi Xe đến c1, buộc Vua Trắng di chuyển sang ô b8. Đen đi Vua b6, Trắng đi Vua a8 (bắt buộc) và Đen đi Xe c8 chiếu hết (Đen mất 3 nước để chiến thắng).
  • Ở thế cờ thứ ba (hình minh họa 2, nhưng đổi quân Đen thành quân Trắng và ngược lại), Vua Trắng đã bị chiếu hết do đó nếu thế cờ này là lượt Đen đi thì không hợp lệ, còn đến lượt Trắng thì Đen sẽ thắng ngay lập tức (mất 0 nước).


Bình luận

Không có bình luận nào.