Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. vector <int> L[15];
  6. bitset <15>viz;
  7. int st[15], top;
  8. bool OK(true);
  9. int n;
  10.  
  11. ofstream fout("hamilton.out");
  12.  
  13. void Read()
  14. {
  15. ifstream fin("hamilton.in");
  16. fin >> n;
  17. int x, y;
  18. while(fin >> x >> y)
  19. {
  20. L[x].push_back(y);
  21. L[y].push_back(x);
  22. }
  23. fin.close();
  24. }
  25.  
  26. bool Verificare(int k)
  27. {
  28. int i;
  29. for(i = 1; i <= top; i++)
  30. if(st[i] == k)
  31. return false;
  32. return true;
  33. }
  34.  
  35. void Afisare()
  36. {
  37. int i;
  38.  
  39. fout << "1\n";
  40.  
  41. for(i = 1; i <= top; i++)
  42. fout << st[i] << " ";
  43. fout << st[1];
  44. fout << "\n";
  45. }
  46.  
  47. void Back(int k)
  48. {
  49. int x;
  50. if(Verificare(k) && OK)
  51. {
  52. viz[k] = true;
  53. st[++top] = k;
  54. for(int i = 0; i < L[k].size(); i++)
  55. {
  56. x = L[k][i];
  57. if(top >= 3 && st[1] == x && viz.count() == n)
  58. {
  59. Afisare();
  60. OK = false;
  61. return;
  62. }
  63. else if(Verificare(x))
  64. Back(x);
  65. }
  66. viz[k] = false;
  67. top--;
  68. }
  69. }
  70.  
  71. int main()
  72. {
  73. Read();
  74. for(int i = 1; i <= n && OK; i++)
  75. Back(i);
  76. if(OK)
  77. fout << "0\n";
  78. fout.close();
  79. return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement