Google Code Jam 2013予選ラウンド問題Bから抜粋:
アリスとボブは家の前にNメートルx Mメートルの長方形の形の芝生を置いています。毎年、彼らは芝生を興味深いパターンに切り取ろうとします。彼らは非常に時間がかかる剪断機で切断を行っていました。しかし、今では複数の設定が可能な新しい自動芝刈り機があり、試してみたいと思っています。
新しい芝刈り機には高さ設定があります。1〜100ミリメートルの任意の高さhに設定でき、高さhに到達するhより高いすべての芝生を刈り取ります。あなたは芝生の端のどこかで芝生に入ってそれを実行します。次に、芝刈り機は、進入した芝生の端に垂直に直線状に進み、幅1mの草を刈り取り、反対側の芝生から出るまで刈り取ります。芝刈り機の高さは、芝生の上にないときにのみ設定できます。
アリスとボブには、芝生の上に置くことができるさまざまなパターンの草があります。それらのそれぞれについて、彼らは彼らの新しい芝刈り機でこのパターンに草を切ることが可能であるかどうか知りたいです。各パターンは、芝生の各1m x 1mの正方形の芝生の高さを指定することによって記述されます。
芝生全体の芝生の高さは、最初は100mmです。
整数の高さの2D配列を取り、それに応じて芝生を切断できるかどうかを決定する関数を記述します。
Google Code Jamの100のテストケースを以下に示します。 最初の35ケースはパスするはずですが、残りはパスしません。
最短のコードが勝ちます。