Cờ ca-rô lồng nhau

Đề bài

Mô tả

Hai chú gấu chơi một biến thể của cờ ca-rô trên bàn cờ kích thước 9×9. Bàn cờ lớn được chia thành 9 bàn con kích thước 3×3, xếp thành lưới 3×3.

Hai người chơi đi lần lượt. Nước đi đầu tiên được đặt quân vào ô trống bất kỳ. Từ nước thứ hai trở đi, luật như sau: giả sử ở nước vừa rồi đối phương đặt quân vào ô có toạ độ (xl,yl) bên trong bàn con chứa ô đó (tức là vị trí tương đối của ô trong bàn con 3×3 của nó), thì nước tiếp theo phải đặt vào một ô trống của bàn con nằm ở hàng xl, cột yl trong lưới 3×3 các bàn con.

Nếu bàn con bắt buộc đó không còn ô trống nào, người chơi được đặt quân vào bất kỳ ô trống nào trên toàn bàn cờ.

Một chú thỏ đưa thư đôi khi nghịch ngợm sửa bàn cờ, nên trạng thái được cho có thể không phải là một thế cờ hợp lệ đạt được từ đầu ván. Bạn không cần kiểm tra điều đó, chỉ cần áp dụng luật trên để liệt kê mọi nước đi hợp lệ tiếp theo.

Cho trạng thái hiện tại của bàn cờ và toạ độ ô mà nước đi cuối cùng được thực hiện, hãy tìm tất cả các ô mà người chơi hiện tại có thể đặt quân.

Dữ liệu vào

  • 11 dòng đầu mô tả bàn cờ 9 hàng × 9 cột. Mỗi nhóm 3 hàng liên tiếp được ngăn cách với nhóm tiếp theo bởi một dòng trống; trong mỗi hàng, ba nhóm 3 ký tự được ngăn cách bởi dấu cách.
  • Ký tự x là quân của người chơi thứ nhất, o là quân của người chơi thứ hai, . là ô trống.
  • Dòng cuối chứa hai số nguyên x và y (1≤x,y≤9) là toạ độ ô mà nước đi cuối cùng được thực hiện. Hàng được đánh số từ trên xuống, cột được đánh số từ trái sang phải.

Dữ liệu ra

In ra bàn cờ theo đúng định dạng như dữ liệu vào, trong đó mọi ô mà người chơi hiện tại có thể đặt quân được thay bằng ký tự !. Các ô còn lại giữ nguyên.

Ràng buộc

  • 1≤x,y≤9
  • Ô tại vị trí (x,y) chắc chắn chứa x hoặc o.
  • Bàn cờ có ít nhất một ô trống.

Ví dụ

Input Output Giải thích
... ... ...
... ... ...
... ... ...

... ... ...
... ... ...
... x.. ...

... ... ...
... ... ...
... ... ...
6 4
... ... ...
... ... ...
... ... ...

... ... ...
... ... ...
... x.. ...

!!! ... ...
!!! ... ...
!!! ... ...
Nước cuối ở (6,4), tức ô góc dưới trái của bàn con trung tâm: xl=(6−1)mod3=2, yl=(4−1)mod3=0. Vậy phải đi vào bàn con hàng 2, cột 0, tức bàn con dưới trái, và bàn con này còn trống hoàn toàn.
xoo x.. x..
ooo ... ...
ooo ... ...

x.. x.. x..
... ... ...
... ... ...

x.. x.. x..
... ... ...
... ... ...
7 4
xoo x!! x!!
ooo !!! !!!
ooo !!! !!!

x!! x!! x!!
!!! !!! !!!
!!! !!! !!!

x!! x!! x!!
!!! !!! !!!
!!! !!! !!!
Nước cuối ở (7,4) là ô trên trái của bàn con dưới giữa, nên bàn con bắt buộc là bàn con trên trái. Bàn con này đã kín, vì vậy được đặt vào bất kỳ ô trống nào.
o.. ... ...
... ... ...
... ... ...

... xxx ...
... xox ...
... ooo ...

... ... ...
... ... ...
... ... ...
5 5
o!! !!! !!!
!!! !!! !!!
!!! !!! !!!

!!! xxx !!!
!!! xox !!!
!!! ooo !!!

!!! !!! !!!
!!! !!! !!!
!!! !!! !!!
Nước cuối ở ô trung tâm của bàn con trung tâm nên bàn con bắt buộc chính là bàn con trung tâm, vốn đã kín, do đó đi được khắp nơi. Lưu ý thế cờ này không thể đạt được trong một ván thật, nhưng ta vẫn áp dụng luật như thường.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0