// FGA: TSPLIB-to-FGA converter #include #include #include using namespace std; int main(int argc, char *argv[]) { ifstream infile(argv[1]); ofstream outfile(argv[2]); cout << "TSPLIB converter currently supports only 2D Euclidean-distance symmetric TSP specifications." << endl; string data; do { infile >> data; } while (data != "DIMENSION" && data != "DIMENSION:"); if (data == "DIMENSION") infile >> data; int dim; infile >> dim; outfile << dim << endl; do { infile >> data; } while (data != "NODE_COORD_SECTION"); float x[dim], y[dim]; for (int i = 0; i < dim; ++i) { int index; // unused infile >> index >> x[i] >> y[i]; } for (int i = 0; i < dim; ++i) for (int j = i + 1; j < dim; ++j) outfile << ceil(sqrt(pow(x[i] - x[j], 2) + pow(y[i] - y[j], 2))) << " "; infile.close(); outfile.close(); return 0; }