Hình vuông và các hình chữ nhật

Đề bài

Mô tả

Cho n hình chữ nhật trên mặt phẳng toạ độ. Mọi hình chữ nhật đều có các đỉnh với toạ độ nguyên và các cạnh song song với trục Ox, Oy.

Các hình chữ nhật có thể chạm nhau (chung cạnh hoặc chung đỉnh), nhưng không chồng lấn lên nhau: không tồn tại điểm nào nằm trong phần trong của nhiều hơn một hình chữ nhật.

Hãy xác định xem n hình chữ nhật này có ghép lại thành đúng một hình vuông hay không. Nói cách khác, tập hợp các điểm nằm trong hoặc trên biên của ít nhất một hình chữ nhật có trùng khít với tập hợp các điểm nằm trong hoặc trên biên của một hình vuông nào đó hay không.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n là số hình chữ nhật.
  • n dòng tiếp theo, mỗi dòng chứa bốn số nguyên x1,y1,x2,y2 mô tả một hình chữ nhật: x1x2 là hoành độ cạnh trái và cạnh phải, y1y2 là tung độ cạnh dưới và cạnh trên.

Dữ liệu ra

In ra một dòng duy nhất chứa YES nếu các hình chữ nhật ghép thành một hình vuông, ngược lại in ra NO.

Ràng buộc

  • 1n5
  • 0x1<x231400
  • 0y1<y231400
  • Không có hai hình chữ nhật nào chồng lấn phần trong lên nhau.

Ví dụ

Input Output Giải thích
5
0 0 2 3
0 3 3 5
2 0 5 2
3 2 5 5
2 2 3 3
YES Năm hình chữ nhật lấp kín hình vuông có góc dưới trái (0,0) và góc trên phải (5,5), cạnh bằng 5.
4
0 0 2 3
0 3 3 5
2 0 5 2
3 2 5 5
NO So với ví dụ trên, hình chữ nhật nhỏ [2,3]×[2,3] bị bỏ đi nên còn một lỗ trống ở giữa.
2
0 0 3 2
0 2 3 3
YES Hai hình chữ nhật xếp chồng theo chiều dọc tạo thành hình vuông cạnh 3.

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