Деревянная железная дорога

Условие

an image

В 1837 году в России появилась первая железная дорога. Это был отрезок прямой от Санкт-Петербурга до Царского села. В этой задаче вам тоже нужно будет построить железную дорогу, но из элементов деревянного конструктора, который продается в магазинах. 

1) Задача состоит в том, чтобы соединить как можно больше населенных пунктов дорогами без пересечений. Населенный пункт обозначается квадратиком, и дорога должна пройти через обведенный вокруг него пунктир. При подсоединении населенного пункта к ЖД-сети он меняет цвет. 

2) Если появились несколько участков сети, не соединенные между собой, то в качестве рекорда будет использоваться наибольшее число пунктов, связанных ЖД-сообщением.

3-4) Дальнейшее улучшение решения будет достигаться уменьшением числа тупиков, а потом - расходных материалов (числа элементов, из которых собрана дорога).

5) Наконец, при прочих равных лучшей будет считаться дорога с максимумом развилок.

Лучшее решение - рекорд - запоминается автоматически и к нему можно вернуться в любой момент времени.

Помощь

an image

1) Двойной щелчок на пустом месте - создает новый элемент. Чтобы выбрать, какой именно, используйте один из трех левых переключателей. Первый создает прямые элементы, второй - закругленные, третий - развилки.

2) Для соединения элементов их нужно перемещать за край. В момент соединения на конце элемента появляется черная точка "на пружинке", которая стягивает части в одну конструкцию. Для рассоединения элементов нужно сделать двойной щелчок на месте соединения.

3) Две верхних кнопки слева определяют режим работы мышки. В первом (основном) режиме (верхняя  кнопка) двойной щелчок удаляет элемент.

4) Во втором режиме (вторая кнопка сверху) двойной щелчок прибивает элемент по его центру, то есть элемент может вращаться вокруг центра. Второй двойной щелчок прибивает элемент "намертво". Третий двойной щелчок возвращает элемент в свободное состояние.

5) Обратите внимание! После перемещения элементы некоторое время находятся в движении, чтобы встать в положение, в котором выполняются все ограничения на взаимное расположение. Пока элементы перемещаются, снизу горит предупреждение, что положение неустойчиво. Если элементы никак не могут расположиться так, чтобы выполнить все ограничения, предупреждение так и останется гореть, и можно нажать на кнопку возвращения в последнее устойчивое состояние. Неустойчивые состояния не рассматриваются в качестве решений!

Промежуточные решения можно сохранять и возвращаться к ним по мере надобности.