Kilani và trò chơi

Đề bài

Mô tả

Có một bàn chơi dạng lưới kích thước n×m. Mỗi ô hoặc là ô trống, hoặc là ô bị chặn, hoặc chứa lâu đài của một người chơi (mỗi ô có nhiều nhất một lâu đài). Có p người chơi, mỗi người sở hữu ít nhất một lâu đài lúc ban đầu.

Trò chơi diễn ra theo các vòng. Trong mỗi vòng, các người chơi lần lượt mở rộng theo thứ tự: người chơi 1 mở rộng trước, rồi đến người chơi 2, và cứ thế đến người chơi p.

Khi đến lượt, người chơi i xét toàn bộ các lâu đài mình đang sở hữu. Với mỗi ô trống mà từ một lâu đài của người chơi i có thể đi tới trong tối đa si bước theo bốn hướng (lên, xuống, trái, phải), mà không đi qua ô bị chặn hay ô đã bị người chơi khác chiếm, thì người chơi i sẽ đặt lâu đài lên ô đó. Tất cả các ô thoả điều kiện được chiếm đồng thời trong lượt này, sau đó mới chuyển lượt cho người kế tiếp.

Trò chơi kết thúc khi không người chơi nào có thể chiếm thêm ô nào. Hãy cho biết số ô mà mỗi người chơi kiểm soát khi trò chơi kết thúc.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, p: kích thước lưới và số người chơi.
  • Dòng thứ hai chứa p số nguyên s1,s2,,sp: tốc độ mở rộng của từng người chơi.
  • n dòng tiếp theo, mỗi dòng gồm m ký tự mô tả lưới: ký tự . là ô trống, ký tự # là ô bị chặn, và chữ số x (1xp) là ô chứa lâu đài của người chơi x.

Dữ liệu ra

In ra p số nguyên: số ô mà mỗi người chơi kiểm soát sau khi trò chơi kết thúc.

Ràng buộc

  • 1n,m1000
  • 1p9
  • 1si109
  • Mỗi người chơi có ít nhất một lâu đài trên lưới.

Ví dụ

Input Output Giải thích
3 3 2
1 1
1..
...
..2
6 3 Cả hai người chơi có tốc độ 1. Người chơi 1 xuất phát ở góc trên trái, người chơi 2 ở góc dưới phải. Vì người chơi 1 luôn đi trước nên chiếm được nhiều ô hơn, kết quả 63.
3 4 4
1 1 1 1
....
#...
1234
1 4 3 3 Người chơi 1 bị ô chặn # bao phía trên nên không mở rộng được, chỉ giữ 1 ô. Ba người còn lại mở rộng lên trên; ở vòng thứ ba chỉ người chơi 2 còn ô để chiếm sang trái.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0