Не, так чисто математика Вам здесь сильно не поможет. Если Вашу задачу правильно поняли, то набросок алгоритма Вам уже дали. Он, кажется,

+ памяти еще может сожрать

(если все треугольники изолированные), а сильнее и не получится без дополнительных предположений. Быстрее чем

в принципе не получится.
А дальше придется смотреть конкретику, т.е. оптимизировать только коэффициент: смотреть какая структура данных, сколько она занимает места, сколько вообще памяти оперативной, выписать алгоритм конкретно, попытаться уменьшить число операций, оптимизировать типы и т.п.. Чисто математика без конкретики здесь просто не поможет.
М.б.
venco Вам сможет помочь.