Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define v 5
- int PCV(int g[][v], int in)
- {
- vector<int> vertices;
- for (int i = 0; i < v; i++)
- if (i != in)
- vertices.push_back(i);
- int menorCaminho = INT_MAX;
- do {
- int caminhoAtual = 0;
- int k = in;
- for (int i = 0; i < vertices.size(); i++) {
- caminhoAtual += g[k][vertices[i]];
- //printf("%d ", g[k][vertices[i]]);
- k = vertices[i];
- }
- //printf("\n\n");
- caminhoAtual += g[k][in];
- menorCaminho = min(menorCaminho, caminhoAtual);
- } while (next_permutation(vertices.begin(), vertices.end()));
- return menorCaminho;
- }
- int main()
- {
- int grafo[][v] = {
- { 0, 12, 10, 15, 5},
- { 12, 0, 4, 20, 9},
- { 10, 4, 0, 11, 30},
- { 15, 20, 11, 0, 3},
- { 5, 9, 30, 3, 0}
- };
- int inicio = 0;
- cout << PCV(grafo, inicio) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement