TUZ_2-05 Подсчет правильных прямых углов


TUZ_2-05 Подсчет правильных прямых углов
Задача 50250

TUZ_2-05 Подсчет правильных прямых углов
2.5. Подсчет правильных прямых углов
В двумерной сетке с целочисленными координатами узлов правильный прямой угол определяется тремя точками (x, y), (x, y+h) и (x+h, y) для некоторого значения h больше 0. Эти точки образуют фигуру, напоминающую столярный угольник или шеврон, направленный углом влево и вниз, причем точка (x, y) соответствует острию угла, а (x, y+h) и (x+h, y) определяют концы крыльев одинаковой длины и параллельные осям координат.
Напишите функцию, которая принимает список точек, отсортированных по их координатам x, и возвращает количество правильных прямых углов. В табл. 2.5 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.5. Некоторые ожидаемые результаты для разных входных значений в задаче подсчета правильных прямых углов
список точек Ожидаемый результат
(1, 1), (3, 5), (5, 2) 0
(0, 4), (0, 16), (2, 2), (2, 5), (5, 2), (9, 13) 1
(1, 3), (1, 7), (5, 3), (5, 5), (7, 3) 2

Алгоритм
Алгоритм подсчета правильных прямых углов отыскивает все комбинации из трех точек в списке, которые образуют угол в форме столярного угольника или шеврона, как описано в постановке задачи. Для поиска решения используется следующий алгоритм.
1. Переменная counter инициализируется значением 0.
2. Выполняется обход списка точек во вложенном цикле.
3. Для каждой точки проверяется, присутствует ли в списке другая точка с большей координатой x и такой же координатой y.
4. Если такая точка существует, то проверяется, присутствует ли в списке третья точка, необходимая для формирования угла (согласно определению задачи).
5. Если третья точка существует, то переменная counter увеличивается на 1.
6. По завершении вернуть значение counter.