Du planst, ein Baumhaus in den Wäldern in der Nähe deines Hauses zu bauen, damit du den Sonnenaufgang und den Sonnenuntergang beobachten kannst.
Du hast Daten von einem örtlichen Vermessungsunternehmen erhalten, die die Höhen aller Bäume in jedem rechteckigen Abschnitt der Karte zeigen. Du musst jedes Raster auf der Karte analysieren, um den perfekten Baum für dein Baumhaus zu finden.
Der beste Baum ist der höchste Baum im Vergleich zu allen anderen Bäumen im Osten und Westen, damit du die bestmögliche Aussicht auf die Sonnenaufgänge und Sonnenuntergänge hast. Du kletterst nicht gern so viel, deshalb ist der perfekte Baum auch der niedrigste von allen Bäumen im Norden und im Süden.
Deine Aufgabe ist es, die möglichen Bäume zu finden, an denen du dein Baumhaus bauen könntest.
Die Datenfirma stellt die Daten als Raster bereit, die die Höhen der Bäume zeigen. Die Zeilen des Rasters stehen für die Ost-West-Richtung und die Spalten für die Nord-Süd-Richtung.
Ein geeigneter Baum ist der größte in seiner Zeile und gleichzeitig der kleinste in seiner Spalte.
Ein Raster hat vielleicht gar keine guten Bäume. Oder es hat einen, oder sogar mehrere.
Hier ist ein Raster mit genau einem möglichen Baum.
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
Der Punkt bei [2, 1] (Zeile: 2, Spalte: 1) ist also ein großartiger Platz für ein Baumhaus.
Melde dich bei Exercism an, um Delphi Pascal mit 76 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.