1. Как сгенерировать все перестановки чисел?
Есть разные алгоритмы - погуглите "генерация перестановок".
как посчитать полное расстояние, если где-то расстояние между двумя станками 30м, а где-то 40м?
Тут всё по-честному придется делать.
Т.е., если у нас порядок прохождения 123456, а текущая перестановка 07654321, то
1. Находим индекс (начиная с 0) первого станка в цепочке - 7
2. Находим индекс второго станка в цепочке - 6
3. Расстояние от 7-го места до 6-го - 250 м по часовой стрелке и 30 м - против часовой, поэтому берем 30.
4. Находим индекс 3-го станка в цепочке и считаем расстояние до него от 6-го места.
И т.д.
Лучше сначала построить матрицу расстояний
![$s[0..7,0..7]$ $s[0..7,0..7]$](https://dxdy-02.korotkov.co.uk/f/d/6/a/d6af550c2da887d092e544c50592d3fc82.png)
, такую, что
![$s[i,j]$ $s[i,j]$](https://dxdy-02.korotkov.co.uk/f/d/9/0/d90dc5c3325b7a938113776b57a6815682.png)
- расстояние между местами

и

.