自宅の近くの森に、日の出と日の入りを眺められるツリーハウスを建てる計画を立てています。
地元の測量会社から、地図の長方形の区画ごとに、そこにあるすべての木の高さを示すデータを入手しました。 地図上の各グリッドを分析して、ツリーハウスにぴったりの木を見つける必要があります。
最適な木は、東と西にあるほかのすべての木と比べて一番高い木です。そうすれば、日の出と日の入りをできるだけよく眺められます。 あまり高くまで登るのは好きではないので、理想の木は、北と南にあるすべての木の中で一番低い木でもあります。
ここでの課題は、ツリーハウスを建てられそうな木を見つけることです。
データ会社は、木の高さを表すグリッドとしてデータを提供してくれます。グリッドの行は東西方向を、列は南北方向を表します。
条件を満たす木は、その行の中で最も大きく、かつその列の中で最も小さい木です。
グリッドによっては、条件を満たす木が1本もないこともあります。1本だけのこともあれば、何本もあることもあります。
次は、候補となる木がちょうど1本だけあるグリッドです。
1 2 3 4
|----------- 1 | 9 8 7 8 2 | 5 3 2 4 <--- potential tree house at row 2, column 1, for tree with height 5 3 | 6 6 7 1
つまり、[2, 1](行2、列1)の地点は、ツリーハウスにうってつけの場所です。