travelling_saleman.py 482 B

12345678910111213141516171819202122
  1. '''
  2. @author: olivier.massot, 2019
  3. '''
  4. import math
  5. def distance(c0, c1):
  6. return math.sqrt((c0[0] - c1[0])**2 + (c0[1] - c1[1])**2)
  7. cities = [tuple([int(j) for j in input().split()]) for _ in range(int(input()))]
  8. dist, start = 0, cities.pop(0)
  9. current = start
  10. while cities:
  11. cities.sort(key=lambda c: distance(c, current))
  12. next_step = cities.pop(0)
  13. dist += distance(next_step, current)
  14. current = next_step
  15. dist += distance(next_step, start)
  16. print(round(dist))