Решим задачу в два этапа.
1. Будем считать, что у нас только одна вершина горы. Задача построения параболы по трём точкам. Две точки - два танка, третья точка - вершина горы. Окей гугл построение параболы по трём точкам.
Решили.
2. Несколько вершин. Даже по имеющейся картинке сложно на глаз определить, какая из двух вершин важнее для нашего выстрела - левая, или та, что в середине картинки. Поэтому надо определить список вершин. Тут есть простор для придумывания алгоритма. Например, так. Находим самую высокую точку, при условии, что она выше обоих танков. Добавляем её в список. Далее рекурсивный обход (здесь танки условно считаем тоже вершинами). Проводим прямую от левого (правого) танка до последней вершины. Повторяем поиск максимальной высоты, но считаем высоту над проведённой прямой. Условие выхода из рекурсии - нет точек выше прямой. Таким образом нашли список вершин. Для каждой вершины из списка решаем задачу построения параболы. Из всех парабол выбираем самую высокую.
Решили.
3... так, мы же хотели решить в два этапа? Но это была голая математика, и для физической задачи мы получили не совсем то, что нужно. Внезапно. Решение было бы правильным, если бы танк мог управлять скоростью снаряда. Тогда мы могли бы выстрелить по любой рассчитанной выше параболе. Но у танка скорость снаряда фиксированная (или я отстал от жизни?), и мы управляем только углом. Поэтому надо сначала решать задачу из школьного учебника физики, про выстрел из пушки. Угол определяем без учёта гор. В общем случае будет два решения, два возможных угла - по настильной траектории, и по навесной. У нас же горная местность, так что настильная траектория (угол от 0 до 45 градусов) нас не устраивает, остаётся одно решение. Т.е. единственный шанс попасть в цель - стрелять с найденным сейчас углом, не зависимо от расположения вершин. Если на пути снаряда окажется гора, значит шансов попасть в цель было ровно ноль, при любом другом угле будет промах, даже если не наткнёмся на гору. Получается, что все рассуждения на этапах 1 и 2 были напрасны? Не совсем. Мы можем ими воспользоваться, чтобы определить, налетит снаряд на гору или не налетит (при точном прицеливании). Если выясним, что налетит на гору, значит можно не стрелять, сэкономить снаряд, но это уже слегка за пределами абстрактных условий задачи.