Chọn Đội tuyển HSGQG Huế 2024 - Biến đổi bảng

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: BOARD.INP
Output: BOARD.OUT

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong lúc rảnh rỗi, Nam đã thiết kế ra một trò chơi đơn giản để giải trí. Trò chơi được thực hiện trên một bảng có dạng lưới kích thước ~m \times n~, trong đó mỗi ô được tô một trong hai màu đen hoặc trắng. Các hàng trên bảng được đánh số từ ~1~ đến ~m~ từ trên xuống dưới, các cột được đánh số từ ~1~ đến ~n~ từ trái sang phải, ô ở hàng ~i~ cột ~j~ là ô ~(i, j)~.

Nam được phép biến đổi bảng bằng cách sử dụng thao tác sau:

  • Chọn một hình vuông kích thước ~2 \times 2~ trên bảng;

  • Đảo màu tất cả các ô ở trong hình vuông đó (các ô màu đen trong hình vuông sẽ trở thành màu trắng và các ô màu trắng trong hình vuông sẽ trở thành màu đen).

image

Sau nhiều ngày thử nghiệm, Nam đã tìm ra bảng yêu thích của cậu ấy. Tuy nhiên Nam lại không ghi lại cách để tạo ra bảng đó nên giờ cậu ấy không thể tạo ra bảng yêu thích của mình.

Yêu cầu: Bạn được cho bảng hiện tại của Nam. Hãy giúp Nam biến đổi bảng để tạo ra bảng yêu thích của cậu ấy sau không quá 10 000 thao tác.

Input

Vào từ file văn bản BOARD.INP:

  • Dòng đầu tiên chứa hai số nguyên ~m~ và ~n~ cách nhau bởi dấu cách là kích thước của bảng ~(2 \leq m, n \leq 100)~;

  • ~m~ dòng tiếp theo mô tả bảng hiện tại của Nam, dòng thứ ~i~ chứa một xâu ~n~ kí tự, trong đó kí tự thứ ~j~ bằng W nếu ô ~(i, j)~ trong bảng hiện tại có màu trắng, ngược lại kí tự thứ ~j~ bằng B nếu ô ~(i, j)~ trong bảng hiện tại có màu đen;

  • ~m~ dòng cuối cùng mô tả bảng yêu thích của Nam, dòng thứ ~i~ chứa một xâu ~n~ kí tự, trong đó kí tự thứ ~j~ bằng W nếu ô ~(i, j)~ trong bảng yêu thích có màu trắng, ngược lại kí tự thứ ~j~ bằng B nếu ô ~(i, j)~ trong bảng yêu thích có màu đen.

Output

Ghi ra file văn bản BOARD.OUT:

  • Dòng đầu tiên in ra YES nếu có thể biến đổi thành bảng yêu thích của Nam, hoặc NO trong trường hợp ngược lại.

  • Nếu có thể biến đổi được thì:

    • Dòng thứ hai in ra một số nguyên ~k~ là số thao tác để biến đổi bảng ban đầu thành bảng yêu thích của Nam (~0 \leq k \leq 10 000~);

    • ~k~ dòng cuối cùng in ra dãy thao tác biến đổi, dòng thứ ~i~ in ra hai số nguyên ~x~ và ~y~ với ô ~(x, y)~ tương ứng là góc trái trên của hình vuông ~2 \times 2~ được chọn trong thao tác thứ ~i~ ~(1 \leq x < m, 1 \leq y < n)~.

Scoring

Subtask Điểm Giới hạn
1 ~50\%~ Tồn tại cách biến đổi gồm không quá ~1~ thao tác
2 ~30\%~ ~m = 2~
3 ~20\%~ Không có ràng buộc gì thêm

Sample Input 1

2 2
BW
WB
WB
BW

Sample Output 1

YES
1
1 1

Sample Input 2

2 3
BWB
WBW
BBB
WWW

Sample Output 2

NO

Sample Input 3

3 3
WWW
BWW
WWB
WBB
WWB
BBB

Sample Output 3

YES
2
1 2
2 1

Notes

  • Trong test ví dụ đầu tiên, có thể biến đổi sau ~1~ thao tác như sau:

    image

  • Trong test ví dụ thứ hai, không thể biến đổi được:

    image

  • Trong test ví dụ thứ ba, có thể biến đổi sau ~2~ thao tác như sau:

    image


Bình luận

Hãy đọc nội quy trước khi bình luận.


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