TL13 - Sơn bảng - PAINT
Dữ liệu vào: Standard input
Dữ liệu ra: Standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: phanhieubl

Một bảng số kích thước m x n, ban đầu bảng số được phủ toàn bộ là màu trắng. Người ta tiến hành sơn bảng số này như sau:

  • Chọn một bảng con kích thước r x c bất kỳ.
  • Sơn toàn bộ bảng con vừa chọn, màu trắng thành màu đen và màu đen thành màu trắng.
  • Lặp lại các bước trên cho đến khi được một mẫu cho trước.

Bạn hãy cho biết cần tối thiểu bao nhiêu lần sơn để được mẫu cho trước.

INPUT: PAINT.INP

  • Gồm nhiều bộ test, mỗi bộ test bao gồm:
    • Dòng 1 chứa 4 số nguyên dương m, n, r, c (1 ≤ r n ≤ 100, 1 ≤ c m ≤ 100).
    • Các dòng tiếp theo thể hiện bảng mẫu. Bản mẫu gồm m dòng, mỗi dòng chứa n ký tự 0 hoặc 1, trong đó 0 là màu trắng và 1 là màu đen.
  • Kết thúc bộ test là 4 số 0 0 0 0.

OUTPUT: PAINT.OUT

  • Đưa ra số lượng sơn bảng ít nhất có thể, trong trường hợp không tạo được mẫu cho trước thì đưa ra -1.

Ví dụ

PAINT.INP

PAINT.OUT

3 3 1 1

010

101

010

4 3 2 1

011

110

011

110

3 4 2 2

0110

0111

0000

0 0 0 0

4

6

-1

Back to Top