SƠN CÁC HÌNH CHỮ NHẬT

Một phần của tài liệu 150 đề tin học (Trang 52 - 53)

Một bảng hình chữ nhật phẳng đã được chia thành các miền hình chữ nhật không giao nhau và có cạnh song song với cạnh của bảng. Người ta muốn sơn các miền chữ nhật này, mỗi miền sẽ được sơn bằng một màu

định sẵn.

Vì khi sơn có hiện tượng sơn chảy xuống phía dưới nên một miền chữ nhật phía dưới chỉđược phép sơn khi mà các miền trên, có ảnh hưởng tới nó đã được sơn.

Theo hình bên thì miền 2 chỉ được sơn sau khi miền 5 và miền 7 đã sơn xong. Nói một cách chính xác: Miền A bắt buộc phải sơn sau miền B nếu cả hai điều kiện sau thỏa mãn:

1. Hình chiếu của miền A và miền B trên trục hoành có ít nhất hai điểm chung

2. Tung độ tâm miền B lớn hơn tung độ tâm miền A

Để sơn tất cả các miền, người ta sử dụng một hệ thống chổi sơn đủ màu sắc, hai chổi sơn khác nhau có màu khác nhau. Hãy tìm th t sơn các min ch nht sao cho s ln phi thay chi là ít nht.

Dữ liệu: Vào từ file văn bản PAINT.INP. Trong đó: • Dòng đầu tiên ghi số miền chữ nhật trong bảng (n)

• n dòng tiếp theo, Dòng thứ i ghi thông tin về miền thứ i gồm 5 số nguyên X1 Y1 X2 Y2 C theo

đúng thứ tựđó. (X1, Y1) là tọa độđỉnh trái dưới, (X2, Y2) là tọa độđỉnh phải trên, C là mã màu cần tô cho miền.

Kết quả: Ghi ra file văn bản PAINT.OUT. Trong đó

• Dòng 1: Ghi số lần thay chổi ít nhất (tính cả lần đầu tiên khi bắt đầu sơn) • Dòng 2: Ghi số hiệu các miền chữ nhật theo đúng thứ tự sẽ tô.

Các số trên một dòng của Input/ Output file ghi cách nhau ít nhất một dấu cách. Giới hạn: 1 ≤ n ≤ 20; 1 ≤ mã màu ≤ 15; 0 ≤ các tọa độ≤ 100;

Ví dụ: Với hình vẽ trong bài, số 2 là mã màu đỏ và số 1 là mã màu xanh.

PAINT.INP PAINT.OUT 7 7 4 0 6 3 2 3 4 5 3 6 7 2 1 0 1 2 3 4 5 6 1 2 3 4 5 6 y x 1 (Đỏ) 2 (xanh) 4 (Đỏ) 5 (Đỏ) 3 (xanh) 6 (xanh) 7 (xanh)

Một phần của tài liệu 150 đề tin học (Trang 52 - 53)