Entnommen aus der Qualifikationsrunde für Google Code Jam 2013 Problem B :
Alice und Bob haben einen Rasen vor ihrem Haus, der wie ein Rechteck von N mal M Metern geformt ist. Jedes Jahr versuchen sie, den Rasen nach einem interessanten Muster zu schneiden. Sie schnitten mit einer Schere, was sehr zeitaufwändig war. Jetzt haben sie einen neuen automatischen Rasenmäher mit mehreren Einstellungen und möchten ihn ausprobieren.
Der neue Rasenmäher hat eine Höheneinstellung - Sie können ihn auf eine beliebige Höhe h zwischen 1 und 100 Millimeter einstellen, und er schneidet das gesamte Gras höher als h, auf das er trifft, auf Höhe h. Sie führen es aus, indem Sie den Rasen an einer beliebigen Stelle am Rand des Rasens betreten. dann fährt der Rasenmäher in einer geraden Linie senkrecht zum Rand des Rasens, in den er eingetreten ist, und schneidet Gras in einem 1 m breiten Schwad, bis er den Rasen auf der anderen Seite verlässt. Die Höhe des Rasenmähers kann nur eingestellt werden, wenn er sich nicht auf dem Rasen befindet.
Alice und Bob haben verschiedene Grasmuster, die sie auf ihrem Rasen haben könnten. Für jeden von ihnen möchten sie wissen, ob es möglich ist, das Gras mit ihrem neuen Rasenmäher in dieses Muster zu schneiden. Jedes Muster wird beschrieben, indem die Höhe des Grases auf jedem 1 x 1 Quadratmeter großen Rasen angegeben wird.
Das Gras ist anfangs 100 mm hoch auf dem gesamten Rasen.
Schreiben Sie eine Funktion, die ein 2D-Array von ganzzahligen Höhen verwendet und bestimmt, ob der Rasen entsprechend geschnitten werden kann.
Hier sind 100 Testfälle von Google Code Jam. Die ersten 35 Fälle sollten vergehen, der Rest nicht.
Der kürzeste Code gewinnt.