Lấy từ Bài kiểm tra Vòng loại B 2013 của Google Code Jam :
Alice và Bob có một bãi cỏ ở phía trước ngôi nhà của họ, có hình chữ nhật N mét vuông M. Mỗi năm, họ cố gắng cắt cỏ theo một số mô hình thú vị. Họ thường cắt bằng kéo, rất tốn thời gian; nhưng bây giờ họ có một máy cắt cỏ tự động mới với nhiều cài đặt và họ muốn dùng thử.
Máy cắt cỏ mới có cài đặt độ cao - bạn có thể đặt nó ở bất kỳ độ cao h nào trong khoảng từ 1 đến 100 mm và nó sẽ cắt tất cả các loại cỏ cao hơn h mà nó gặp phải với chiều cao h. Bạn chạy nó bằng cách vào bãi cỏ ở bất kỳ phần nào của mép cỏ; sau đó máy cắt cỏ đi theo một đường thẳng, vuông góc với mép của bãi cỏ mà nó đi vào, cắt cỏ rộng khoảng 1m, cho đến khi nó ra khỏi bãi cỏ ở phía bên kia. Chiều cao của máy cắt cỏ chỉ có thể được đặt khi nó không ở trên bãi cỏ.
Alice và Bob có một số mẫu cỏ khác nhau mà họ có thể có trên bãi cỏ của họ. Đối với mỗi người trong số họ, họ muốn biết liệu có thể cắt cỏ thành mô hình này bằng máy cắt cỏ mới của họ hay không. Mỗi mẫu được mô tả bằng cách chỉ định chiều cao của cỏ trên mỗi ô vuông 1m x 1m.
Cỏ ban đầu cao 100mm trên toàn bộ bãi cỏ.
Viết hàm lấy một mảng 2D có chiều cao nguyên và xác định xem có thể cắt cỏ không.
Dưới đây là 100 trường hợp thử nghiệm từ Google Code Jam. 35 trường hợp đầu tiên nên vượt qua, phần còn lại không nên.
Mã ngắn nhất sẽ thắng.