To Спалланцани:
Тогда так:
На входе массив из 2 полей - L и H.
Предварительный прогон - если H>L, меняем их местами ("поворачиваем на 90 градусов")
1. Сортируем массив по L (по убыванию) и Н(по возрастанию)
2. Базовая площадь: S = L1*H1 (самый длинный прямоугольник)
3. Сохраняем значение H1 в переменную H_Current
4. Далее цикл по массиву со второй строки:
Если H(i) <= H_Current, игнорируем прямоугольник, переход к следующему (он полностью закрыт предыдущим)
иначе увеличиваем площадь S на площадь выступающего куска (S = S + (H(i) - H_Current)*L(i)) и присваиваем новое значение H_Current = H(i)
5. Цикл закончен, результат в переменной S.