Взято з Google Code Jam 2013 Кваліфікаційний раунд Проблема B :
Аліса та Боб мають газон перед своїм будинком, що має форму прямокутника N метра на М метр. Щороку вони намагаються обрізати газон за якоюсь цікавою схемою. Раніше вони різали ножицями, що було дуже трудомістким; але тепер у них є нова автоматична газонокосарка з кількома налаштуваннями, і вони хочуть спробувати її.
Нова газонокосарка має встановлення висоти - її можна встановити на будь-яку висоту h від 1 до 100 міліметрів, і вона буде обрізати всю траву вище, ніж h, яка зустрічається до висоти h. Ви запускаєте його, заходячи на газон у будь-якій частині краю газону; потім газонокосарка йде по прямій лінії, перпендикулярній до краю газону, на який вона ввійшла, обрізаючи траву шириною 1 м, поки не вийде з газону з іншого боку. Висоту газонокосарки можна встановити лише тоді, коли її немає на газоні.
У Аліси та Боба є ряд різноманітних моделей трави, які вони могли мати на своєму газоні. Для кожного з них вони хочуть знати, чи можна зрізати траву за цим малюнком за допомогою нової газонокосарки. Кожен малюнок описується, вказуючи висоту трави на кожному квадраті 1 м х 1 м газону.
Спочатку трава заввишки 100 мм на всій галявині.
Напишіть функцію, яка займає двовимірний масив цілих висот і визначає, чи можна газон відповідно вирізати.
Ось 100 тестових випадків з Google Code Jam. Перші 35 випадків повинні пройти, решта не повинні.
Найкоротший код виграє.