Ми плануємо збудувати будиночок на дереві в лісі неподалік від нашого дому, щоб мати змогу спостерігати за сходом і заходом сонця.
Ми отримали дані від місцевої геодезичної компанії, які показують висоту всіх дерев у кожній прямокутній ділянці мапи. Нам потрібно проаналізувати кожну ділянку на мапі, щоб знайти ідеальне дерево для нашого будиночка.
Найкраще дерево буде найвищим порівняно з усіма іншими деревами на схід і на захід, щоб у нас був якнайкращий вид на схід і захід сонця. Ми не любимо залазити надто високо, тож ідеальне дерево буде також найнижчим серед усіх дерев на північ і на південь.
Мета цієї вправи - знайти потенційні дерева, на яких можна збудувати будиночок.
Компанія зі збору даних надає дані у вигляді сіток, які показують висоту дерев. Рядки сітки відповідають напрямку схід-захід, а стовпці - напрямку північ-південь.
Придатним деревом буде те, яке найбільше у своєму рядку і найменше у своєму стовпці.
У сітці може не бути жодного придатного дерева. А може бути одне або навіть кілька.
Ось сітка, у якій є рівно одне потенційне дерево.
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) - чудове місце для будиночка.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Delphi Pascal, а також 76 вправ та справжнє наставництво від людей, і все це безкоштовно.