Thanh tẩy

Đề bài

Mô tả

Bạn đang đứng trong một căn phòng hình vuông gồm N×N ô, các hàng được đánh số từ 1 đến N từ trên xuống dưới, các cột được đánh số từ 1 đến N từ trái sang phải. Ban đầu mọi ô đều bị nhiễm tà khí và bạn phải thanh tẩy toàn bộ chúng.

Cách duy nhất để thanh tẩy là niệm chú "Thanh Tẩy" lên một ô. Khi niệm chú lên ô (i,j), tất cả các ô nằm cùng hàng i và tất cả các ô nằm cùng cột j sẽ được thanh tẩy (kể cả chính ô (i,j)). Một ô có thể được thanh tẩy nhiều lần.

Tuy nhiên, một số ô bị nhiễm tà khí quá nặng: bạn không thể niệm chú lên các ô đó, ngay cả sau khi chúng đã được thanh tẩy. Chúng vẫn có thể được thanh tẩy gián tiếp nếu một ô cùng hàng hoặc cùng cột với chúng được chọn để niệm chú.

Hãy tìm cách thanh tẩy toàn bộ N×N ô với số lần niệm chú ít nhất, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên N.
  • N dòng tiếp theo, mỗi dòng chứa N ký tự mô tả lưới. Ký tự thứ j của dòng thứ iE nếu ô (i,j) là ô nhiễm nặng (không thể niệm chú lên), và . nếu ngược lại.

Dữ liệu ra

Nếu không có cách nào thanh tẩy toàn bộ lưới, in ra 1.

Ngược lại, gọi x là số lần niệm chú ít nhất. In ra x dòng, dòng thứ k chứa hai số nguyên là chỉ số hàng và chỉ số cột của ô được niệm chú ở lần thứ k. Nếu có nhiều đáp án cùng dùng x lần niệm chú, in ra đáp án bất kỳ.

Ràng buộc

  • 1N100
  • Mỗi ký tự của lưới là E hoặc .

Ví dụ

Input Output Giải thích
3
.E.
E.E
.E.
1 1
2 2
3 1
Niệm chú lên (1,1) phủ hàng 1 và cột 1, lên (2,2) phủ hàng 2 và cột 2, lên (3,1) phủ hàng 3. Ba lần niệm chú phủ cả ba hàng nên toàn bộ lưới sạch. Đáp án 1 1 / 2 2 / 3 3 cũng được chấp nhận.
3
EEE
E..
E.E
-1 Hàng 1 toàn ô nhiễm nặng và cột 1 cũng toàn ô nhiễm nặng, nên ô (1,1) không bao giờ được thanh tẩy.
5
EE.EE
E.EE.
E...E
.EE.E
EE.EE
1 3
2 2
3 2
4 1
5 3
Mỗi hàng đều có ít nhất một ô ., chọn một ô như vậy trên mỗi hàng là đủ phủ toàn bộ lưới bằng 5 lần niệm chú.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0