Advertisement
Mattia-Iojica

Comis voiajor

Jan 23rd, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin("citire.txt");
  7.  
  8. int n,st[50],a[50][50];
  9. void Citire(int &n)
  10. {
  11. int i, j;
  12. fin>>n;
  13. while(fin>>i>>j)
  14. {
  15. a[i][j]=a[j][i]=1;
  16. }
  17. fin.close();
  18. }
  19.  
  20. int valid(int k)
  21. {
  22. if(!a[st[k-1]][st[k]])
  23. return 0;
  24.  
  25. for(int i=1;i<k;i++)
  26. if(st[k]==st[i])
  27. return 0;
  28.  
  29. if(k==n && !a[1][st[k]])
  30. return 0;
  31. return 1;
  32.  
  33. }
  34. int sol(int k)
  35. {
  36. return k==n;
  37. }
  38. void tipar()
  39. {
  40. for(int i=1;i<=n;i++)
  41. cout<<st[i]<<" ";
  42. cout<<endl;
  43.  
  44. }
  45. void bkt(int k)
  46. {
  47. for(int i=1;i<=n;i++)
  48. {
  49. st[k]=i;
  50. if(valid(k))
  51. {
  52. if(sol(k))
  53. tipar();
  54. else
  55. bkt(k+1);
  56. }
  57. }
  58. }
  59. int main()
  60. {
  61.  
  62. Citire(n);
  63.  
  64. st[1]=1;
  65. bkt(2);
  66. return 0;
  67.  
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement