Stai progettando di costruire una casa sull'albero nel bosco vicino a casa tua, così da poter ammirare l'alba e il tramonto.
Hai ottenuto i dati da una società di rilevamento locale che mostrano le altezze di tutti gli alberi in ogni sezione rettangolare della mappa. Devi analizzare ogni griglia sulla mappa per trovare l'albero perfetto per la tua casa sull'albero.
L'albero migliore sarà quello più alto rispetto a tutti gli altri alberi a est e a ovest, così da avere la migliore vista possibile su albe e tramonti. Non ti piace arrampicarti troppo, quindi l'albero perfetto sarà anche il più basso tra tutti gli alberi a nord e a sud.
Il tuo compito è trovare i possibili alberi su cui potresti costruire la tua casa sull'albero.
La società che raccoglie i dati fornisce i dati sotto forma di griglie che mostrano le altezze degli alberi. Le righe della griglia rappresentano la direzione est-ovest, mentre le colonne rappresentano la direzione nord-sud.
Un albero accettabile sarà il più alto della sua riga e, allo stesso tempo, il più basso della sua colonna.
Può capitare che una griglia non abbia nessun albero adatto. Oppure potrebbe averne uno, o anche diversi.
Ecco una griglia che ha esattamente un albero candidato.
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
Quindi il punto in [2, 1] (riga: 2, colonna: 1) è un ottimo posto per una casa sull'albero.
Iscriviti a Exercism per imparare e padroneggiare Delphi Pascal con 76 esercizi e il mentoring di persone reali, tutto gratis.