Статья Автор: Лебедев Дмитрий

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.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать