Вы можете выбрать случайное соединение, затем каждый раз удалять одно пересечение (фактически меняете соединение своих конечных точек), этот алгоритм работает и завершается за конечные шаги.может быть, вы скажете, что переключение крестиков приводит к новому кресту, независимо от того, что каждый раз, переключая один крестик, вы минимизируете общую длину своего ответа, и этот путь не может быть бесконечным (поскольку общая длина линий конечна).На самом деле работает в O (F * n ^ 2), где F= sum of all line segments * power of 10
(чтобы сделать его целым числом).Это O очень оптимистично, я думаю, если вы попробуете этот простой алгоритм, он будет работать нормально.Конечно, это вообще лучше, чем грубая сила.