iGrok писал(а):Потому что теперь и я не вижу, каким же образом ты при таком алгоритме получил мой ряд.
Угу, попутал - пятерка выше восьмерки, и с таким алгоритмом получится не твой, а снова мой ряд
Сейчас пока так:
Ввожу понятие соседних ректов. Это два таких ректа, проекции которых на ось Х не накладываются, и между которыми нет других ректов. Соседние ректы не обязаны накладываться проекцией на ось У, но зазор не должен быть больше какого-то оговоренного процента. Скажем, у восьмерки соседи справа - 5 и 9, у девятки - 10 и 14.
1. Идем слева направо. Находим все ректы, которые станут началами рядов.
2. Идем от начала каждого ряда вправо, каждый раз выбирая самого верхнего соседа из ещё не посчитаных.
3. После прохода всех рядов останутся какие-то неприкаянные ректы и даже ряды ректов. Смотрим, кому они приходились соседом справа и вставляем неприкаяный ряд в список на нужную позицию.
Хакер писал(а):Я, в общем, предлагаю такой более-менее универсальный метод: ректы принять узлами графа.
Пытаюсь разобраться. Тема графов для меня пока новая
Что значит "рассемлить"