Khôi phục đa giác (dễ)

Đề bài

Mô tả

Cho lưới ô vuông kích thước N×N trên hệ trục toạ độ. Mỗi ô đơn vị có tọa độ nguyên ở 4 đỉnh. Cụ thể, ô ở cột c (1-indexed từ trái) và có y-toạ độ y thì có 4 đỉnh tại (c1,y1), (c,y1), (c1,y), (c,y).

Một hình chữ nhật bí ẩn có các cạnh song song với trục, các đỉnh có toạ độ nguyên, dạng [x1,x2]×[y1,y2] với 0x1<x2N0y1<y2N (diện tích khác 0).

Với mỗi ô đơn vị, người ta tính một số nguyên trong {0,1,2,3,4} — đó là số đỉnh của ô nằm trong hoặc trên biên hình chữ nhật. Bạn được cho lưới giá trị này, hãy xác định xem có tồn tại một hình chữ nhật như trên sinh ra đúng lưới đã cho hay không.

Các ô được liệt kê theo thứ tự: hàng đầu tiên tương ứng các ô có y-toạ độ y=N (tức đỉnh trên là y=N, đỉnh dưới là y=N1), hàng cuối tương ứng y=1. Trong mỗi hàng, các ô được liệt kê theo cột tăng dần: cột đầu tiên là ô có x[0,1], cột cuối là ô có x[N1,N].

Dữ liệu vào

  • Dòng đầu chứa số nguyên N (5N50).
  • N dòng tiếp theo, mỗi dòng gồm N ký tự là các chữ số từ 0 đến 4, mô tả lưới giá trị.

Dữ liệu ra

In ra Yes nếu tồn tại hình chữ nhật thoả mãn, ngược lại in ra No.

Ràng buộc

  • 5N50.
  • Mỗi ký tự trong lưới thuộc {0,1,2,3,4}.

Ví dụ

Input Output Giải thích
6
000000
000000
012100
024200
012100
000000
Yes Hình chữ nhật [2,3]×[2,4] sinh ra đúng lưới này. Ô chính giữa có cả 4 đỉnh nằm trong hình chữ nhật nên nhận giá trị 4, các ô viền nhận giá trị 1 hoặc 2 tuỳ số đỉnh ở biên.
6
000000
000000
002200
002200
000000
000000
No Không tồn tại hình chữ nhật toạ độ nguyên có cạnh trục sinh ra lưới này: hai ô giá trị 2 ở giữa đòi hỏi mỗi ô đúng 2 đỉnh trong hình chữ nhật, nhưng đồng thời các ô kề bên đều bằng 0 — không nhất quán với bất kỳ hình chữ nhật nào.
7
0000000
0012210
0024420
0012210
0000000
0000000
0000000
Yes Hình chữ nhật [2,4]×[4,6] sinh ra đúng lưới này (ba ô chính giữa hàng có giá trị 4 là các ô có cả 4 đỉnh trong hình chữ nhật).

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