Дано: 100000 отрезков, длины которых записаны в файле. Длины целые и гарантированно влезают в int.
Требуется: выбрать 3 отрезка так, чтобы получился треугольник, имеющий максимальную площадь.
Ограничения: 1 секунда на всё.
Помогите решить эту задачу.
PS. Для меньшего количества отрезков можно так: сортируем все отрезки за NlogN, а потом перебираем все пары отрезков, и для каждой пары бинарным делением находим третий отрезок, который даст максимальную площадь с данной парой. Такой алгоритм будет иметь сложность N^2 * logN, для 100000 отрезков это слишком много. Подскажите более оптимальный алгоритм.