Advertisement
Guest User

Й

a guest
Mar 20th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. /*
  4.  
  5. 8 15
  6. 1 2 1
  7. 1 4 8
  8. 1 8 5
  9. 2 3 6
  10. 2 4 3
  11. 2 5 2
  12. 2 6 2
  13. 2 7 3
  14. 2 8 4
  15. 3 4 2
  16. 3 5 3
  17. 4 6 4
  18. 5 6 7
  19. 6 7 4
  20. 7 8 5
  21.  
  22. */
  23.  
  24. using namespace std;
  25.  
  26. long v, r, a[1001][1001], q, w, e, smax = 1000001, sum, n, p[1001], pr[1001], t, re[1001], g;
  27.  
  28. void H(long x)
  29. {
  30.     p[x] = 1;
  31.     n++;
  32.  
  33.     for (int i = 1; i <= v; i++)
  34.         if (p[i] == 0 && a[x][i] > 0)
  35.         {
  36.             pr[i] = x;
  37.             sum += a[x][i];
  38.             H(i);
  39.             sum -= a[x][i];
  40.         }
  41.     if (n == v && a[x][1] > 0)
  42.     {
  43.         if (sum + a[x][1] < smax)
  44.             smax = sum + a[x][1];
  45.         g = x;
  46.         for (t = 0; t < v; t++)
  47.         {
  48.             re[t] = g;
  49.             g = pr[g];
  50.         }
  51.     }
  52.     p[x] = 0;
  53.     n--;
  54. }
  55.  
  56. int main()
  57. {
  58.     fstream fin("in.txt");
  59.     fin >> v >> r;
  60.     for (int i = 1; i <= r; i++)
  61.     {
  62.         fin >> q >> w >> e;
  63.         a[q][w] = e;
  64.         a[w][q] = e;
  65.     }
  66.     H(1);
  67.     cout << smax << endl;
  68.     for (int i = 0; i < t; i++)
  69.     {
  70.         cout << re[i] << " ";
  71.     }
  72.     fin.close();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement