Hình lồi

Đề bài

Mô tả

Cho một lưới kích thước n×m. Ban đầu mọi ô đều màu trắng, sau đó một số ô (ít nhất một ô) được tô đen.

Ta nói lưới đã tô là lồi nếu: với mọi cặp ô đen, ta có thể đi từ ô này đến ô kia bằng một đường đi gồm các ô đen kề cạnh nhau, sao cho trong suốt đường đi ta đổi hướng nhiều nhất một lần.

Đổi hướng nhiều nhất một lần nghĩa là đường đi gồm nhiều nhất hai đoạn thẳng: một đoạn đi theo một hướng (ngang hoặc dọc), rồi có thể rẽ một lần và đi tiếp theo hướng còn lại.

Cho lưới đã tô, hãy xác định lưới có lồi hay không.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm là kích thước lưới.
  • n dòng tiếp theo, mỗi dòng chứa m ký tự "B" hoặc "W". Ký tự "B" là ô đen, "W" là ô trắng.

Lưới có ít nhất một ô đen.

Dữ liệu ra

In ra "YES" nếu lưới lồi, ngược lại in ra "NO" (không có dấu ngoặc kép).

Ràng buộc

  • 1n,m50

Ví dụ

Input Output Giải thích
3 1
B
B
W
YES Hai ô đen nằm liền kề trên cùng một cột, đi thẳng không cần đổi hướng.
3 4
WWBW
BWWW
WWWB
NO Ô đen ở góc dưới phải và ô đen ở giữa không thể nối bằng đường đen với tối đa một lần rẽ.

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