Tô màu hình chữ nhật

Đề bài

Mô tả

Trên mặt phẳng tọa độ có n hình chữ nhật, các cạnh song song với hai trục tọa độ. Mọi cạnh của mọi hình chữ nhật đều có độ dài lẻ. Các hình chữ nhật không chồng lên nhau (phần giao có diện tích dương là không được phép), nhưng chúng có thể tiếp xúc nhau.

Hai hình chữ nhật được gọi là tiếp xúc theo cạnh nếu tồn tại một cặp cạnh của chúng mà phần giao có độ dài dương (lớn hơn 0). Tiếp xúc chỉ tại một điểm (góc chạm góc) thì không tính.

Hãy tô màu các hình chữ nhật bằng 4 màu (đánh số từ 1 đến 4) sao cho hai hình chữ nhật bất kỳ tiếp xúc theo cạnh thì được tô khác màu nhau, hoặc xác định rằng điều đó là không thể.

Dữ liệu vào

  • Dòng đầu 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 góc đối diện của hình chữ nhật thứ i.

Dữ liệu ra

  • Nếu không thể tô màu thỏa mãn, 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) là màu của hình chữ nhật thứ i.

Nếu có nhiều cách tô hợp lệ, in ra cách bất kỳ.

Ràng buộc

  • 1n5·105
  • 109x1<x2109, 109y1<y2109
  • Mọi cạnh có độ dài lẻ; các hình chữ nhật không chồng lên nhau.

Ví dụ

Input Output Giải thích
8
0 0 5 3
2 -1 5 0
-3 -4 2 -1
-1 -1 2 0
-3 0 0 5
5 2 10 3
7 -3 10 2
4 -2 7 -1
YES
1
2
3
4
3
3
4
1
Một cách tô hợp lệ. Mọi cặp hình chữ nhật tiếp xúc theo cạnh đều mang màu khác nhau. Các đáp án khác cũng được chấp nhận.
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 đơn vị xếp thành vòng; mỗi ô tiếp xúc với hai ô kề, nên cần tô sao cho các ô kề khác 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