Advertisement
J00ker

Untitled

Oct 2nd, 2015
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int st[100], n;
  7.  
  8. void Init(int k)
  9. {
  10.     st[k] = n+1;
  11. }
  12.  
  13. int Succesor(int k)
  14. {
  15.     if(st[k] > 1)
  16.     {
  17.         st[k]--;
  18.         return 1;
  19.     }
  20.     return 0;
  21. }
  22.  
  23. int Valid(int k)
  24. {
  25.     for(int i = 1; i <  k; i++)
  26.         if(st[k] == st[i])
  27.             return 0;
  28.     return 1;
  29. }
  30.  
  31. int Solutie(int k)
  32. {
  33.     if(k == n+1)
  34.         return 1;
  35.     return 0;
  36. }
  37.  
  38.  
  39. ofstream fout("permutari1.out");
  40. void Tipar()
  41. {
  42.     for(int i = 1; i <= n; i++)
  43.         fout << st[i] << " ";
  44.     fout << "\n";
  45. }
  46.  
  47. void backtrack(int k)
  48. {
  49.     if(Solutie(k))
  50.         Tipar();
  51.     else
  52.     {
  53.         Init(k);
  54.         while(Succesor(k))
  55.             if(Valid(k))
  56.                 backtrack(k+1);
  57.     }
  58. }
  59.  
  60. int main()
  61. {
  62.     ifstream fin("permutari1.in");
  63.     fin >> n;
  64.     backtrack(1);
  65.     fin.close();
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement