Tsp coverage starting point random algorithm cpp example