#include #include #include #include using namespace std; float miasta[130][3]; float odleglosc[130][130]; float c = 1000.0; int x; int y; void najblizsze_miasto() { for(int j = 0; j < 130; j++) { if(odleglosc[x][j] != 0 && miasta[j][2] == 0 && odleglosc[x][j] < c) { c = odleglosc[x][j]; y = j; } } } int main() { float wspx, wspy, a, cos; float suma = 0.0; ifstream plik; plik.open("ch130.tsp"); plik >> cos; int i = 0; while( !plik.eof() ) { plik >> a >> wspx >> wspy; miasta[i][0] = wspx; miasta[i][1] = wspy; miasta[i][2] = 0; i++; } for(int i = 0; i < 130; i++) for(int j = 0; j < 130; j++) odleglosc[i][j] = sqrt(pow(miasta[j][0] - miasta[i][0], 2) + pow(miasta[j][1] - miasta[i][1], 2)); for(int i = 0; i < 130; i++) { miasta[i][2] = 1; x = i; for(int n = 0; n < 129; n++) { najblizsze_miasto(); suma += odleglosc[x][y]; x = y; miasta[y][2] = 1; /* for(int p = 0; p < 130; p++) if(miasta[p][2] == 0) y = p; */ } suma += odleglosc[x][i]; for(int c = 0; c < 130; c++) miasta[c][2] = 0; cout << suma << endl; suma = 0; } }