trang chủ / bài tập / rect4col

Tô màu hình chữ nhật bằng 4 màu

Đề bài

Mô tả

Trên mặt phẳng tọa độ vô hạn có n hình chữ nhật với các cạnh song song với các trục tọa độ. Tất cả các cạnh của các hình chữ nhật đều có độ dài lẻ. Các hình chữ nhật không cắt nhau (phần giao có diện tích bằng 0), nhưng có thể chạm nhau qua cạnh.

Hai hình chữ nhật được gọi là chạm nhau qua cạnh nếu tồn tại một cặp cạnh (một của hình thứ nhất, một của hình thứ hai) sao cho phần giao của hai cạnh đó có độ dài lớn hơn 0.

Hãy tô màu n hình chữ nhật bằng 4 màu sao cho hai hình chữ nhật bất kỳ chạm nhau qua cạnh phải mang màu khác nhau, hoặc thông báo rằng việc tô màu là không thể.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n — số hình chữ nhật.
  • n dòng tiếp theo, dòng thứ i chứa bốn số nguyên x1,y1,x2,y2 — tọa độ hai đỉnh đối diện của hình chữ nhật thứ i.

Dữ liệu ra

  • Nếu không thể tô màu hợp lệ, in ra một dòng duy nhất chứa NO.
  • Ngược lại, in ra YES ở dòng đầu, sau đó n dòng, dòng thứ i chứa một số nguyên ci (1ci4) — màu của hình chữ nhật thứ i.

Ràng buộc

  • 1n5·105
  • 109x1<x2109, 109y1<y2109
  • x2x1y2y1 đều lẻ.
  • Các hình chữ nhật không cắt nhau (phần giao có diện tích bằng 0).

Ví dụ

Input Output Giải thích
1
0 0 1 1
YES
1
Chỉ có một hình chữ nhật đơn vị, tô màu 1.
4
0 0 1 1
1 0 2 1
1 1 2 2
0 1 1 2
YES
1
3
4
2
Bốn ô vuông xếp thành lưới 2×2; bốn ô đôi một chạm nhau qua cạnh nên phải dùng đủ 4 màu.

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