Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 24
- (1,10) (4,4) (5,1) (2,0) (1,10)
- (1,10) (4,4) (2,0) (5,1) (1,10)
- (1,10) (5,1) (4,4) (2,0) (1,10)
- (1,10) (5,1) (2,0) (4,4) (1,10)
- (1,10) (2,0) (5,1) (4,4) (1,10)
- (1,10) (2,0) (4,4) (5,1) (1,10)
- (4,4) (1,10) (5,1) (2,0) (4,4)
- (4,4) (1,10) (2,0) (5,1) (4,4)
- (4,4) (5,1) (1,10) (2,0) (4,4)
- (4,4) (5,1) (2,0) (1,10) (4,4)
- (4,4) (2,0) (5,1) (1,10) (4,4)
- (4,4) (2,0) (1,10) (5,1) (4,4)
- (5,1) (4,4) (1,10) (2,0) (5,1)
- (5,1) (4,4) (2,0) (1,10) (5,1)
- (5,1) (1,10) (4,4) (2,0) (5,1)
- (5,1) (1,10) (2,0) (4,4) (5,1)
- (5,1) (2,0) (1,10) (4,4) (5,1)
- (5,1) (2,0) (4,4) (1,10) (5,1)
- (2,0) (4,4) (5,1) (1,10) (2,0)
- (2,0) (4,4) (1,10) (5,1) (2,0)
- (2,0) (5,1) (4,4) (1,10) (2,0)
- (2,0) (5,1) (1,10) (4,4) (2,0)
- (2,0) (1,10) (5,1) (4,4) (2,0)
- (2,0) (1,10) (4,4) (5,1) (2,0)
- float Distancia(Cidade cA, Cidade cB)
- {
- int distanciaX = pow(cA.x - cB.x, 2);
- int distanciaY = pow(cA.y - cB.y, 2);
- float distancia = sqrt(distanciaX + distanciaY);
- return distancia;
- }
- float Distancias(Cidade *C, int numeroCidades)
- {
- int i;
- float total = 0;
- for(i = 0; i < numeroCidades; i++)
- {
- if(i == numeroCidades - 1)
- {
- total = total + Distancia(C[i], C[0]);
- }
- else
- {
- total = total + Distancia(C[i], C[i+1]);
- }
- }
- return total;
- }
- float MenorDistancia(Cidade *C, int numeroCidade)
- {
- int i;
- float distancias[numeroCidade];
- float menor = distancias[0];
- for(i = 0; i < numeroCidade; i++)
- {
- distancias[i] = Distancias(C, numeroCidade);
- if(distancias[i] < menor)
- menor = distancias[i];
- }
- return menor;
- }
- void Permuta(FILE *saida, Cidade *C, int *sequencia, int inicio, int
- termino)
- {
- int i, j;
- if(inicio == termino)
- {
- for(i = 0; i < termino; i++)
- {
- fprintf(saida, "(%d,%d) ", C[sequencia[i]].x,
- C[sequencia[i]].y);
- }
- fprintf(saida, "(%d,%d)n", C[sequencia[0]].x, C[sequencia[0]].y);
- }
- else
- {
- for(j = inicio; j < termino; j++)
- {
- Troca((sequencia+inicio), (sequencia+j));
- Permuta(saida, C, sequencia, inicio+1, termino);
- Troca((sequencia+inicio), (sequencia+j));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement