Журов Евгений Владимирович
КУРСОВАЯ ЗАДАЧА - ГОРОД
Существует город, состоящий из n x n блоков, где каждый блок содержит одно здание в форме вертикальной квадратной призмы. Линия горизонта города — это внешний контур, образованный всеми зданиями, если смотреть на город издалека. Линия горизонта с каждого из сторон света — севера, востока, юга и запада — может отличаться.
Каждое здание имеет определенную высоту, измеряемую в этажах.
Разрешено увеличивать высоту любого количества зданий на любую величину этажей (величина может быть разной для каждого здания). Высота здания с нулевой высотой также может быть увеличена. Увеличение высоты здания не должно повлиять на горизонт города ни с какой стороны света.
Вам дана матрица n x n , где city[r][c] представляет высоту здания, расположенного в блоке в строке «r» и столбце «c».
Верните максимально возможное количество достроенных этажей, на которое можно увеличить высоту зданий без изменения горизонта города с любого направления по сторонам света.
Пример:
Input: city[ ][ ] =
[2,1] ]
[1,3] ]
Output: 2
Пояснение: всего 4 здания, 2 из которых имеют по 1 этажу, 1 здание 2 этажа и 1 здание 3 этажа . Можно добавить максимум по 1 этажу к каждому одноэтажному дому чтобы ни одна из 4 линий горизонта не поменялась. Итого 2 этажа.
Требования к оформлению.
P.S. При использовании сортировок, коллекций, стримов и материала выходящего за рамки пройденного курса задача не принимается к проверке.