На координатной оси OX есть отметки (x1, x2, x3...). От каждой отметки откладываем отрезки
одинаковой длины d.
В тех местах где есть отрезки на оси OX, мы должны поднять перпендикуляры с концов отрезков
с заданной высотой.
Если встречаются n отрезков, которые совпадают (накладываются друг на друга), то высота
перпендикуляра увеличивается в n раз в тех местах,
где отрезки совпадают.
Даны отметки: 0, 2, 4, 7. Длина отрезка d = 6. Высота перпендикуляра h = 1.

Решение, которое мне пришло на ум мне не нравится. Громоздко выходит.
У нас есть начала координат отрезков, мы можем посчитать концы координат этих отрезков.
Создаём список с этими координатами и сортируем их по возрастанию. К этому списку будет ещё
один список с аналогичной длиной и элементами, установленными в 0. Берём первую отметку и от
неё проходимся по первому списку и каждую ячейку второго списка инкрементируем. Как только
встречаем конец отрезка, мы переходим ко второй отметке. И так далее. В итоге у нас
получается вот такое:
После этого нас нужно ещё раз пройтись по этим спискам и выяснить где заканчивается первый
отрезок и после этой ячейки вставить дополнительную ячейку со значением 2 в список высот. Ну
и так далее.
Может кто-то видит более простое решение?