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

Một phần của tài liệu 150 bai tap toan tin (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 hồ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 miền chữ nhật sao cho số lần phải thay chổi là ít nhất.

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 bai tap toan tin (Trang 52 - 53)

Tải bản đầy đủ (PDF)

(165 trang)