Thuật Toán Tô Màu Lưới

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Bình đang xây dựng một ứng dụng xử lý ảnh vệ tinh giám sát nông nghiệp. Cánh đồng được chia thành lưới kích thước \(N \times M\) ô đất, mỗi ô đang trồng một loại nông sản được ký hiệu bằng một mã màu nguyên dương.

Bình muốn phát triển tính năng "đổi màu nhanh" (Flood Fill) để chuyển đổi giống cây trồng quy mô lớn. Xuất phát từ ô đất tọa độ \((sr, sc)\) đang trồng nông sản loại \(oldColor\), phần mềm sẽ tự động đổi toàn bộ các ô đất liên thông theo 4 hướng kề cạnh (trên, dưới, trái, phải) trồng cùng loại \(oldColor\) sang trồng giống cây mới có mã màu \(newColor\).

Hãy giúp Bình thực hiện thuật toán tô màu lưới này và in ra trạng thái của cánh đồng sau khi đổi màu.

Định dạng đầu vào

  • Dòng đầu chứa hai số nguyên \(N\) và \(M\) (\(1 \le N, M \le 500\)).
  • Dòng thứ hai chứa 3 số nguyên \(sr\), \(sc\) (chỉ số dòng và cột 0-indexed) và \(newColor\) (\(0 \le newColor \le 10^9\)).
  • \(N\) dòng tiếp theo, mỗi dòng chứa \(M\) số nguyên mô tả mã màu các ô đất.

Định dạng đầu ra

  • \(N\) dòng, mỗi dòng chứa \(M\) số nguyên cách nhau bởi dấu cách biểu diễn cánh đồng sau khi thực hiện đổi màu.

Ví dụ

Input:

3 3
1 1 2
1 1 1
1 1 0
1 0 1

Output:

2 2 2
2 2 0
2 0 2

Nhận xét

Không có ý kiến tại thời điểm này.