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. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int st[100], n, p;
  8.  
  9. void Init(int k)
  10. {
  11.     st[k] = 0;
  12. }
  13.  
  14. int Succesor(int k)
  15. {
  16.     if(st[k] < n)
  17.     {
  18.         st[k]++;
  19.         return 1;
  20.     }
  21.     return 0;
  22. }
  23.  
  24. int Valid(int k)
  25. {
  26.     for(int i = 1; i <  k; i++)
  27.         if(st[k] == st[i])
  28.             return 0;
  29.     return 1;
  30. }
  31.  
  32. int Solutie(int k)
  33. {
  34.     return k == p+1;
  35. }
  36.  
  37. ofstream fout("aranjamente.out");
  38. void Tipar()
  39. {
  40.     for(int i = 1; i <= p; i++)
  41.         fout << st[i] << " ";
  42.     fout << "\n";
  43. }
  44.  
  45. void backtrack(int k)
  46. {
  47.     if(Solutie(k))
  48.         Tipar();
  49.     else
  50.     {
  51.         Init(k);
  52.         while(Succesor(k))
  53.             if(Valid(k))
  54.                 backtrack(k+1);
  55.     }
  56. }
  57.  
  58. int main()
  59. {
  60.     ifstream fin("aranjamente.in");
  61.     fin >> n >> p;
  62.     backtrack(1);
  63.     fin.close();
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement